Socket Mode
像给办公室和机器人拉一根一直连着的电话线。Slack 有消息,就能立刻通过这根线喊到 OpenClaw。
Channels 导读
这一页教你如何创建 Slack App 并配置 OpenClaw 通道。最优先完成的是生成 App-Level Token(xapp-...)和 Bot Token(xoxb-...),然后填入配置。容易搞错的是:Socket 模式需要 appToken + botToken,而 HTTP 模式需要 botToken + signingSecret,两种模式的 manifest 和配置项不同,别混用。
先讲这一页到底在解决什么
这一页教你如何创建 Slack App 并配置 OpenClaw 通道。最优先完成的是生成 App-Level Token(xapp-...)和 Bot Token(xoxb-...),然后填入配置。容易搞错的是:Socket 模式需要 appToken + botToken,而 HTTP 模式需要 botToken + signingSecret,两种模式的 manifest 和配置项不同,别混用。
第一站
有人在私聊敲它,有人在频道里 @ 它,它听见以后去想,再把回复发回 Slack。Slack 通道干的就是这件事。
你得先在 Slack 里建一个 App。没有这个身份,OpenClaw 连“我是谁”都没法在办公室里登记。
xoxb-... 这串东西像机器人同事的工牌。有了它,OpenClaw 才能代表这个 bot 去收消息、发消息。
xapp-... 主要给 Socket Mode 用。它更像一条专线,让 Slack 和 OpenClaw 能一直保持连通。
Slack 不是“登录一个账号”那么简单,它更像“先注册一个机器人同事,再把它请进办公室”。
第二站
原文里有 Socket Mode 和 HTTP mode 两条接法。第一次别贪多,先把默认的 Socket Mode 跑通,通常最省心。
像给办公室和机器人拉一根一直连着的电话线。Slack 有消息,就能立刻通过这根线喊到 OpenClaw。
像让 Slack 往你家的门牌地址投递通知。你得准备 webhook 地址,还要把几个入口都指到同一扇门。
如果你只是想先跑起来,Socket Mode 更像“默认新手路线”。HTTP mode 更适合你本来就想接自己的公网入口。
先跑通一条,再研究另一条。两条路能到同一个地方,但第一次没必要同时背两套地图。
第三站
原文“Quick setup”看起来东西很多,其实顺下来就是四个动作。
先在 Slack 里造出一个机器人身份,再给它两把能工作的钥匙,然后告诉 Slack 哪些事件要通知它,最后把 OpenClaw 的总控台开起来,让它正式上班。
先去 Slack 后台把 App 建好,打开 Socket Mode,拿到 xapp-... 和 xoxb-... 这两串关键凭证。
把 Slack 通道打开,把 mode 设成 socket 或 http,再把对应 token 填进去。这一步就是“给机器人发工牌和联络线”。
告诉 Slack:哪些事情发生时要来叫 OpenClaw。比如被 @、频道里发消息、有人加反应、频道改名这些。
最后跑 openclaw gateway。这不是 Slack 专属命令,而是把整个消息中枢开机。中枢没开,前面的设置就还只是桌面上的零件。
mode: "socket":像告诉 OpenClaw“这次我们走专线电话,不走网页门铃”。appToken: "xapp-...":像把那根长期连线的许可卡交给 OpenClaw。botToken: "xoxb-...":像把机器人同事的工牌交给 OpenClaw,让它能代表 bot 在 Slack 里说话。signingSecret:HTTP mode 才用得上,像门口保安拿来验明“这次敲门到底是不是 Slack 本人”。openclaw gateway:像按下总控室电源,让这整套消息系统开始真的值班。第四站
很多人第一次看到 botToken、appToken、userToken 会头大。其实你可以把它们想成三种不同工作证。
这是最核心的。没有它,机器人不能代表 bot 收发消息。Socket Mode 和 HTTP mode 都离不开它。
这是 Socket Mode 专用的联络证。走 HTTP mode 时它就不管用了。
它更像“借一个真人账号的额外视角”。原文特地提醒它默认偏只读,不是拿来随便代替 bot 到处写东西的。
Slack 不是“谁权限大就全都用谁”。不同 token 管不同工作,乱用只会把自己绕进去。
第五站
原文在“Access control and routing”里讲了很多规则。翻成人话,就是 Slack 私聊门禁和频道门禁不是一回事。
管私聊谁能进门。pairing 是先审批,allowlist 是只认名单,open 是全放行,disabled 是干脆不接私聊。
管频道和群组怎么处理。你可以开放、白名单,或者直接关掉。
它决定频道里是不是必须先 @ OpenClaw,它才开口。默认提到才回应,能省掉很多乱入。
官方反复强调用稳定 channel ID,不要太依赖名字。因为频道名会改,ID 更像门牌号,稳得多。
私聊放行,不等于频道也放行。你在 DM 里能和它说话,不代表它就该在所有 Slack 频道里自动参与。
第六站
原文后面讲 slash command,如果直接看,很容易误会成“只要写了命令就会生效”。其实没那么简单。
Slack 这里默认不会自动帮你启用原生命令处理。所以别以为写了 /xxx 它就天然认识。
一边要在 OpenClaw 配置里打开 native commands,一边还要在 Slack 里把对应的 slash command 注册好。两边都点头,它才会通。
channels.slack.commands.native: true:像告诉 OpenClaw“Slack 里的快捷按钮这次我要真的启用”。channels.slack.slashCommand:像只开一个固定前台按钮,不走完整的原生命令大套餐。/agentstatus:原文特地提它,是因为 Slack 自己把 /status 这个名字占了,所以你得换个门牌。slash command 不是“写出来就有”,而是 Slack 后台和 OpenClaw 后台都得一起配。
最后总结
Slack 通道的本质,就是给 OpenClaw 办好机器人身份、接好线、订好事件、定好门禁,再让它进办公室上班。
如果你下一页只想继续看一页,我建议先看 /channels/pairing 或 /channels/troubleshooting。因为 Slack 真正最容易卡住的,不是“怎么建 App”,而是“为什么它不回、谁能用、消息到底有没有进来”。