简介
要在 Square Cloud 上开发和托管 Slack 机器人,遵循一套结构化的配置和前置条件流程至关重要。本技术指南将涵盖整个过程,从初始设置到生产环境部署。前置条件
创建项目
要创建 Slack 机器人,你需要一个账户以及在 Slack 上创建应用的权限。在按照后续步骤操作之前,请在 Slack 上创建或登录你的账户。在 Slack 上创建机器人应用
- 前往 Slack API - Your Apps 并点击 “Create New App”。
- 选择 “From scratch”,为应用命名,并选择你将要安装它的 workspace。
- 在 “Socket Mode” 部分启用 Socket Mode,并生成一个带有
connections:writescope 的 app-level token。复制它(以xapp-开头):这就是你的SLACK_APP_TOKEN。 - 在 “OAuth & Permissions” 部分添加机器人所需的 scope(例如
chat:write、app_mentions:read、commands),将应用安装到你的 workspace,并复制 Bot User OAuth Token(以xoxb-开头):这就是你的SLACK_BOT_TOKEN。 - 在 “Event Subscriptions” 中启用事件并订阅
app_mention机器人事件。在 “Slash Commands” 中创建/hello命令。启用 Socket Mode 后,这两处都不需要填写 Request URL。
开发项目
请根据你选择的语言使用下面对应的部分。两个示例都演示了一个响应提及或简单命令的机器人。- Node.js - @slack/bolt
- Python - slack_bolt
Node.js 环境搭建
- 确认已安装 Node.js。
- 初始化项目并安装依赖:
Terminal
- 创建一个
index.js文件,内容如下:
index.js
配置 Square Cloud
在项目根目录、主文件旁边创建squarecloud.app 文件。它告诉 Square Cloud 如何运行你的机器人:
MAIN是 Square Cloud 运行的文件,MEMORY是机器人的内存(单位 MB)。机器人至少需要 256 MB;512 MB 则留有增长空间。AUTORESTART=true会在机器人崩溃时重新启动它。请参阅自动重启的工作方式。- 没有
SUBDOMAIN:在 Socket Mode 下,机器人不需要公开 URL。
设置令牌
你的代码从SLACK_BOT_TOKEN 和 SLACK_APP_TOKEN 环境变量读取这两个令牌,因此它们永远不会出现在你的文件中。可以通过以下任一方式设置:
- 控制面板:在上传页面打开 Advanced configuration 并添加这两个变量。对于已部署的机器人,请在应用的 Environment Variables 页面添加它们,然后重启机器人。
- CLI:上传机器人后(参见部署),立即使用
squarecloud app env set设置它们并重启机器人:
部署
准备好项目文件后,你现在可以将它们上传到 Square Cloud 并托管你的项目。 为此,请创建一个包含所有项目文件的 ZIP 文件。通过控制面板
1
访问上传页面
访问上传页面并上传你的项目 zip 文件。
2
配置你的环境
上传 zip 后,你需要为项目配置名称、主文件或运行时环境以及其他设置。
如果你上传的是 Web 项目,请务必选择 “Web Publication” 并为项目设置子域名。
如果你上传的是 Web 项目,请务必选择 “Web Publication” 并为项目设置子域名。
3
部署你的项目
最后,点击 “Deploy” 按钮,即可将项目托管到 Square Cloud。
部署完成后,你可以在控制面板中监控项目的状态和日志。
部署完成后,你可以在控制面板中监控项目的状态和日志。

4
确认你的应用已上线
首次部署通常在一分钟内完成。在控制面板中,等待你的应用状态显示为运行中,并检查日志中是否有启动错误。
如果你部署的是网站或 API,请在浏览器中打开
如果你部署的是网站或 API,请在浏览器中打开
https://<your-subdomain>.squareweb.app,你应该能看到应用正常响应。如果你部署的是机器人,发送一条命令确认它已上线。
通过 CLI
要使用此方法,你的项目根目录中需要有一个名为squarecloud.app 的配置文件。它告诉 Square Cloud 如何运行你的应用。
配置文件指南
了解如何创建定义你应用环境的
squarecloud.app 配置文件。1
安装 CLI
安装 Square Cloud CLI。如果你已经安装,运行同一条命令即可更新:
2
登录
运行下面的命令。它会打开你的浏览器:在浏览器中批准登录后,CLI 即可使用。无需复制任何 API 密钥。如需在脚本和 CI 中使用,请参阅 CLI 身份验证。
3
上传你的项目
4
确认你的应用已上线
首次部署通常在一分钟内完成。直接在终端中检查你的应用状态和日志:如果你部署的是网站或 API,请在浏览器中打开
https://<your-subdomain>.squareweb.app,你应该能看到应用正常响应。如果你部署的是机器人,发送一条命令确认它已上线。
测试机器人
- 在 Slack 应用面板的 “OAuth & Permissions” 下,将应用安装到 workspace(如果你还没有安装)。
- 在 Square Cloud 控制面板中检查应用日志,确认没有启动错误。使用 Socket Mode 时无需配置 Request URL:机器人一启动就会连接到 Slack。
- 将机器人邀请到一个频道,然后提及它或运行
/hello命令,以验证响应是否正常。
使用 HTTP 模式代替 Socket Mode
使用 Socket Mode 的应用无法在公开的 Slack Marketplace 中上架。如果你需要 Slack 改为通过 HTTP 发送事件,请将机器人作为 Web 应用运行:- 在 Slack 应用设置中禁用 Socket Mode,并将 Signing Secret(位于 “Basic Information” 下)复制到
SLACK_SIGNING_SECRET环境变量中,设置方式与令牌相同。 - 使用 signing secret 而不是 app-level token 创建应用,并监听
PORT环境变量中的端口:
0.0.0.0),这是 Square Cloud 的要求。
- 在配置文件中添加
SUBDOMAIN(或者从控制面板上传时选择 “Web Publication” 并设置子域名),让机器人获得一个公共 URL。Web 应用至少需要MEMORY=512:
squarecloud.app
没有子域名就上传的应用之后无法再添加子域名。如果你的机器人已经在 Socket Mode 下运行,请将 HTTP 版本作为新应用上传。
- 在 “Event Subscriptions” 和
/hello斜杠命令中,将 Request URL 设置为https://<subdomain>.squareweb.app/slack/events。
更多资源
如需进一步阅读,请查阅 Slack 官方文档:后续步骤
应用无法启动
修复缺少模块、内存错误和其他启动失败问题。
环境变量
管理机器人的令牌和其他密钥。
Discord 机器人
在 Slack 机器人旁边再托管一个 Discord 机器人。

