首页 资讯 下载 教程 Skills 社群

OpenClaw 对接 Slack 工作区教程

前言

Slack 是企业团队协作的主流工具之一。OpenClaw 支持两种模式连接 Slack 工作区:Socket 模式和 HTTP 模式。本教程将带你完成从应用创建到正式运行的全过程。

创建 Slack App

1. 进入 Slack API 平台

访问 Slack API,点击 Create New AppFrom scratch,输入应用名称并选择目标工作区。

2. 获取 App Token(xapp-)

进入 Basic InformationApp-Level Tokens,点击 Generate Token and Scopes

  • Token Name:填写 openclaw-socket
  • 添加 scope:connections:write

生成后复制以 xapp- 开头的 Token。

3. 获取 Bot Token(xoxb-)

进入 OAuth & Permissions 页面,在 Bot Token Scopes 中添加以下权限:

chat:write          # 发送消息
channels:history    # 读取公共频道历史消息
groups:history      # 读取私有频道历史消息
im:history          # 读取私聊历史消息
reactions:read      # 读取表情回应
reactions:write     # 发送表情回应
pins:read           # 读取置顶消息
pins:write          # 添加置顶消息

将应用安装到工作区后,复制以 xoxb- 开头的 Bot Token。

4. 订阅事件

进入 Event Subscriptions,开启 Enable Events。在 Subscribe to bot events 中添加:

  • message.channels - 公共频道消息
  • message.groups - 私有频道消息
  • message.im - 私聊消息
  • app_mention - 被 @ 提及

连接模式选择

Socket 模式(推荐)

Socket 模式通过 WebSocket 长连接接收事件,无需公网地址,适合内网部署:

channels:
  - type: slack
    mode: socket
    appToken: "xapp-1-xxxxxxxx"
    botToken: "xoxb-xxxxxxxx"

HTTP 模式

HTTP 模式需要一个公网可访问的 URL 来接收 Slack 的事件推送:

channels:
  - type: slack
    mode: http
    botToken: "xoxb-xxxxxxxx"
    signingSecret: "你的签名密钥"
    port: 3001

在 Slack 的 Event Subscriptions 中填写你的 Request URL,例如 https://your-domain.com/slack/events

OpenClaw 频道配置

完整配置示例

channels:
  - type: slack
    mode: socket
    appToken: "xapp-1-xxxxxxxx"
    botToken: "xoxb-xxxxxxxx"
    dmPolicy: "paired"
    groupPolicy: "onmention"
    replyToMode: "first"
    requireMention: true

DM 配对安全机制

dmPolicy 设为 paired 时,用户需要先完成配对验证才能与 AI 私聊,防止未授权访问:

# 查看配对请求
openclaw channels pairs list slack
# 审批通过
openclaw channels pairs approve slack <用户ID>

群组策略(groupPolicy)

groupPolicy: "off"        # 不响应频道消息
groupPolicy: "onmention"  # 被 @ 时回复
groupPolicy: "all"        # 响应所有频道消息

回复模式(replyToMode)

控制 AI 回复消息的方式:

模式 行为
off 不在消息线程中回复
first 仅回复线程中的第一条消息
all 回复线程中的所有消息

避免消息循环(requireMention)

当工作区中有多个机器人时,设置 requireMention: true 可以防止机器人之间互相触发,只有被 @ 提及时才会响应:

requireMention: true

部署验证

配置完成后,启动 OpenClaw 并检查连接状态:

openclaw start
# 查看频道状态
openclaw channels status

在 Slack 中向机器人发送一条私聊消息或在频道中 @ 机器人,确认 AI 能正常回复。

常见问题

Bot 没有响应消息

  1. 检查 Bot Token 权限是否完整
  2. 确认事件订阅已正确配置
  3. 查看 OpenClaw 日志排查错误
  4. 确认机器人已被邀请到目标频道(/invite @bot-name

Socket 连接频繁断开

确保 App Token 的 scope 包含 connections:write,并检查网络连接的稳定性。OpenClaw 内置了自动重连机制,短暂的断开通常会自动恢复。

消息延迟过高

HTTP 模式下检查服务器的网络延迟,Socket 模式通常延迟更低。如果使用反向代理,确保 WebSocket 连接未被意外断开。

总结

Slack 对接推荐使用 Socket 模式,免去公网暴露的安全风险。合理配置 requireMentiongroupPolicy 可以避免消息循环,同时通过 DM 配对机制保障访问安全。