前言
Slack 是企业团队协作的主流工具之一。OpenClaw 支持两种模式连接 Slack 工作区:Socket 模式和 HTTP 模式。本教程将带你完成从应用创建到正式运行的全过程。
创建 Slack App
1. 进入 Slack API 平台
访问 Slack API,点击 Create New App → From scratch,输入应用名称并选择目标工作区。
2. 获取 App Token(xapp-)
进入 Basic Information → App-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 没有响应消息
- 检查 Bot Token 权限是否完整
- 确认事件订阅已正确配置
- 查看 OpenClaw 日志排查错误
- 确认机器人已被邀请到目标频道(
/invite @bot-name)
Socket 连接频繁断开
确保 App Token 的 scope 包含 connections:write,并检查网络连接的稳定性。OpenClaw 内置了自动重连机制,短暂的断开通常会自动恢复。
消息延迟过高
HTTP 模式下检查服务器的网络延迟,Socket 模式通常延迟更低。如果使用反向代理,确保 WebSocket 连接未被意外断开。
总结
Slack 对接推荐使用 Socket 模式,免去公网暴露的安全风险。合理配置 requireMention 和 groupPolicy 可以避免消息循环,同时通过 DM 配对机制保障访问安全。