Skip to content

把 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:

bash
cloudflared tunnel --url http://localhost:3000

获取 URL 后填入:

https://your-tunnel-url.trycloudflare.com/slack/events

Slack 会立即发送验证请求。如果 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 区域
bash
moltbot configure --section slack

或使用环境变量:

bash
export SLACK_BOT_TOKEN=xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx
export SLACK_SIGNING_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

配置文件方式:

yaml
# ~/.moltbot/config.yaml
channels:
  slack:
    botToken: "xoxb-xxxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
    signingSecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

启动和配对 ​

bash
moltbot start

在 Slack 左侧栏的「Apps」中找到你的 Bot,发送一条消息。

终端显示配对码后执行:

bash
moltbot pairing approve slack YOUR_CODE

配对完成。

在频道中使用 ​

将 Bot 添加到频道后 @ 它即可:

@Moltbot 帮我查一下最近的 PR 状态

Bot 需要先被邀请到频道中。在频道里输入 /invite @Moltbot 即可。

与其他渠道一样,也支持自定义触发词:

yaml
channels:
  slack:
    mentionPatterns:
      - "!ask"
      - "小助手"

Thread 回复 ​

Moltbot 在频道中回复时,默认以 Thread(话题) 形式回复,不会刷屏主频道。

你在主频道 @ Bot 提出问题,Bot 的回复会出现在该消息的 Thread 中。其他人可以选择性查看。

如果希望直接在主频道回复而不使用 Thread,可以配置:

yaml
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 秒内完成推送。

本站为第三方教程站,与 Moltbot 官方无关