Meet NanoCo, maintainers of NanoClaw: we raised $12M to give every member of your team a professional assistant →
技能
消息通讯 官方

Slack

添加 Slack 作为消息频道。通过 Chat SDK 桥接使用事件订阅(Event Subscriptions)Webhook——需要一个可从公网访问的 HTTPS 端点。

功能特性

  • 通过 Chat SDK 桥接将 NanoClaw 连接到 Slack
  • 事件订阅(Event Subscriptions)Webhook 发送到 NanoClaw 的 Webhook 服务器
  • 支持公共频道、私有频道、私信和线程
  • 可与其他频道并行使用或独立运行
  • 完整的 OAuth 权限配置,支持读取和发送消息

前置条件

  • 已安装并运行 NanoClaw
  • 拥有管理员权限的 Slack 工作区
  • 在 api.slack.com 创建 Slack 应用
  • 一个可从公网访问的 HTTPS 端点(或 ngrok、Cloudflare Tunnel 之类的隧道)

安装

/add-slack

工作原理

/add-slack 技能通过 Chat SDK 桥接将 NanoClaw 连接到 Slack。Slack 会将事件发送到 NanoClaw 共享的 Webhook 服务器(默认端口 3000,可通过 WEBHOOK_PORT 配置)的 /webhook/slack 路径。要让 Slack 能够投递事件,该端点必须可从公网访问——如果你在本地机器上运行 NanoClaw,可以使用 ngrok 或 Cloudflare Tunnel 之类的隧道来提供公网 URL。

该技能会从 channels 分支复制 Slack 适配器(src/channels/slack.ts),在 src/channels/index.ts 中追加一个自注册导入语句,并安装固定版本的 @chat-adapter/slack 包。如果你已经配置了 WhatsApp 或 Telegram 等其他频道,Slack 会作为新增频道一并添加。

设置 Slack 应用需要在 Slack API 控制面板中完成几个步骤。技能会为每个步骤提供详细说明:

  1. 创建应用——在 api.slack.com 选择“From scratch”(从零开始)并选择你的工作区。
  2. 配置 Bot Token 权限chat:writeim:writechannels:historygroups:historyim:historychannels:readgroups:readusers:readreactions:writefiles:readfiles:write
  3. 将应用安装到工作区以获取 Bot Token(xoxb-...),并从 Basic Information 中复制 Signing Secret。
  4. 在 App Home 中启用 Messages 标签,以便用户可以私信机器人。
  5. 启用事件订阅(Event Subscriptions),将 Request URL 设置为 https://your-domain/webhook/slack,并订阅 message.channelsmessage.groupsmessage.imapp_mention 机器人事件。
  6. 开启 Interactivity(交互功能),使用相同的 Request URL,然后在 Slack 提示时重新安装应用。

将这两个值(Bot Token 和 Signing Secret)粘贴到技能中,技能会将它们以 SLACK_BOT_TOKENSLACK_SIGNING_SECRET 的形式保存到 .env

注册频道

应用安装完成后,技能会通过构建项目并运行频道注册测试来验证改动。随后你可以使用 /manage-channels 将 Slack 频道连接到智能体分组。要查找频道的 ID,在 Slack 中右键点击频道名称,选择“查看频道详情”——Channel ID 位于详情面板的底部。注册使用平台 ID 格式 slack:{channelId}(私信的 ID 以 D 开头,而非 C)。

线程与私信

Slack 线程受支持——适配器会保留线程上下文,而不会将回复展平。只要在 App Home 中启用了 Messages 标签,机器人也可以在私信中工作。

使用技巧

  • Webhook 服务器必须可从公网访问,Slack 才能投递事件。在本地开发时,ngrok http 3000 或 Cloudflare Tunnel 可以为你提供一个公网 URL,作为 Request URL 的基础地址。
  • 如果机器人停止响应,请检查 .env 中的 Bot Token 和 Signing Secret 是否仍然有效。Bot Token 在重新安装应用时可能会被撤销。
  • 部分 Slack 工作区有管理策略限制可安装的应用。如果遇到权限问题,你可能需要工作区管理员的审批。
  • 连接频道前请先将机器人邀请到该频道——Slack 机器人只能读取已被明确添加到的频道中的消息。