Slack Events adapter未触发 自建Slack Bot无法接收消息事件如何解决
Slack Bot无法捕获消息事件排查方案
- 检查OAuth权限配置
除了已添加的chat:write权限外,还需要在Slack应用管理页面的「OAuth & Permissions」板块添加对应场景的消息读取权限:公域频道添加channels:history,私域频道添加groups:history,私信场景添加im:history。添加权限后必须重新将应用安装到工作区,否则新增权限不会生效。 - 核对事件订阅请求地址
确认「Event Subscriptions」板块填写的Request URL为当前ngrok生成的https地址 +/slack/events后缀,ngrok每次重启都会生成新地址,需要同步更新Slack侧的配置。 - 确认机器人已加入目标频道
在测试频道中执行/invite @你的机器人名称将机器人拉入频道,未加入频道的机器人无法接收该频道的消息事件。 - 验证事件订阅状态
确认「Event Subscriptions」的总开关处于开启状态,且message.channels事件已正确添加到订阅事件列表中。 - 本地服务与配置校验
- 确认启动ngrok时转发的端口和Flask运行端口一致,默认Flask使用5000端口,对应ngrok启动命令为
ngrok http 5000 - 访问ngrok自带的控制台http://localhost:4040,在频道发送消息时查看是否有请求进入:如果没有请求说明Slack侧配置错误,如有4xx错误需要核对.env文件中
SIGNING_SECRET是否和Slack应用提供的签名密钥一致,SLACK_TOKEN是否为Bot User OAuth Token而非用户级Token。
- 确认启动ngrok时转发的端口和Flask运行端口一致,默认Flask使用5000端口,对应ngrok启动命令为
- 平台自带测试工具校验
可以直接在Slack的事件订阅配置页面向填写的Request URL发送测试事件,根据返回的错误提示定位问题。
内容的提问来源于stack exchange,提问作者Praneeth Vasarla
相关产品推荐
相关产品推荐

