把 Moltbot 接到 Slack 上
Slack 是许多团队的标准协作工具。将 Moltbot 接入后,可以直接在 Slack 中与 AI 助手交互,无需切换应用。
Slack 的 App 配置是四个渠道中步骤最多的,涉及权限体系、事件订阅和 OAuth 等概念。以下逐步说明。
创建 Slack App
前往 api.slack.com/apps,点击 Create New App。
选择 From scratch。
填写 App 名称和要安装到的工作区(Workspace)。
创建完成。
配置 Bot Token Scopes
在左侧菜单中找到 OAuth & Permissions。
下翻至 Bot Token Scopes 区域,添加以下权限:
app_mentions:read — 能看到 @ 提及
chat:write — 能发消息
im:history — 能看私聊历史
im:read — 能读私聊
im:write — 能发私聊
channels:history — 能看频道历史(公开频道)
groups:history — 能看频道历史(私有频道)这些是 Bot 正常工作所需的最小权限集。
添加完成后,回到页面上方,点击 Install to Workspace。授权后会获得一个 Bot User OAuth Token,以 xoxb- 开头。
复制保存。
配置事件订阅
在左侧菜单中找到 Event Subscriptions,启用(Enable Events 开关设为 On)。
需要填写一个 Request URL。与 WhatsApp 类似,Slack 通过 Webhook 推送消息,因此需要一个公网可访问的地址。
本地开发时可使用 Cloudflare Tunnel:
cloudflared tunnel --url http://localhost:3000获取 URL 后填入:
https://your-tunnel-url.trycloudflare.com/slack/eventsSlack 会立即发送验证请求。如果 Moltbot 已在运行,验证会自动通过。未通过的话,先启动 Moltbot 再重试。
验证通过后,下翻至 Subscribe to bot events,添加:
app_mention — 有人 @ Bot 时
message.im — 收到私聊消息时如果还需要 Bot 接收频道中的所有消息(不仅限于 @ 提及),可以添加:
message.channels — 公开频道消息
message.groups — 私有频道消息添加完成后点击 Save Changes。
配置 App Home
在左侧菜单中选择 App Home,确保 Messages Tab 已开启。这样用户才能与 Bot 进行私聊。
勾选 Allow users to send Slash commands and messages from the messages tab。
配置 Moltbot Token
需要两项信息:
- Bot Token — 前面获取的
xoxb-开头的 Token - Signing Secret — 在 Basic Information 页面的 App Credentials 区域
moltbot configure --section slack或使用环境变量:
export SLACK_BOT_TOKEN=xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx
export SLACK_SIGNING_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx配置文件方式:
# ~/.moltbot/config.yaml
channels:
slack:
botToken: "xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
signingSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"启动和配对
moltbot start在 Slack 左侧栏的「Apps」中找到你的 Bot,发送一条消息。
终端显示配对码后执行:
moltbot pairing approve slack YOUR_CODE配对完成。
在频道中使用
将 Bot 添加到频道后 @ 它即可:
@Moltbot 帮我查一下最近的 PR 状态Bot 需要先被邀请到频道中。在频道里输入 /invite @Moltbot 即可。
与其他渠道一样,也支持自定义触发词:
channels:
slack:
mentionPatterns:
- "!ask"
- "小助手"Thread 回复
Moltbot 在频道中回复时,默认以 Thread(话题) 形式回复,不会刷屏主频道。
你在主频道 @ Bot 提出问题,Bot 的回复会出现在该消息的 Thread 中。其他人可以选择性查看。
如果希望直接在主频道回复而不使用 Thread,可以配置:
channels:
slack:
replyInThread: false不过建议保持 Thread 回复的默认行为,有助于保持频道整洁。
Slack 特有功能
Rich Formatting。 Slack 的消息格式化支持 Block Kit,可以呈现按钮、下拉菜单等组件。Moltbot 会利用 Block Kit 优化部分回复的展示,如代码块和列表。
Emoji Reactions。 Moltbot 处理消息时,会先对你的消息添加 👀 emoji reaction,处理完成后替换为 ✅。这样可以直观地看到处理状态。
文件分享。 可以在 Slack 中直接向 Bot 发送文件(图片、文档、代码文件),Bot 能够读取并处理。
常见问题
Event Subscriptions 验证失败?
确保 Moltbot 正在运行,且 URL 可从公网访问。Slack 验证请求会携带 challenge 参数,Moltbot 会自动处理。
Bot 在频道中不可见?
需要先邀请 Bot 到频道中。在频道里输入 /invite @你的Bot名 即可。
权限报错?
每次修改 Bot Token Scopes 后,都需要重新执行 Install to Workspace,修改不会自动生效。
消息延迟?
Slack 的事件推送偶尔会有几秒延迟,属于 Slack 平台的正常现象。通常在 1-3 秒内完成推送。