You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Slack Bolt Python开发Slack应用,机器人无法监听事件如何解决?

核心代码错误修正

你的代码存在执行顺序问题:事件监听函数定义在了app.start()之后,Python代码按顺序执行,app.start()是阻塞运行的方法,启动后不会再加载后续的事件监听逻辑,修改后的代码结构如下:

import os
from slack_bolt import App

app = App(
    token = 'xoxb-xxxxxxxx-2463004875172-0pnMlWzr30pFg2vFGtt52wzx',
    signing_secret = 'xxxxxxx3eba2b1fc11bf6076'
    # 如需监听机器人自身发送的消息,可添加以下参数
    # ignore_self=False
)

# 所有事件监听逻辑必须放在app.start()之前
@app.event("message")
def handle_message_events(body, logger):
    logger.info(body)

if __name__ == "__main__":
    app.start(port=int(os.environ.get("PORT", 3000)))

配置排查项

  • 检查事件订阅路由:Slack Bolt默认的事件接收路径是/slack/events,Slack后台Event Subscriptions页面填写的Request URL必须是ngrok公网地址加该后缀,例如https://xxx.ngrok.io/slack/events,否则事件请求无法被正确接收。如果ngrok日志返回404状态码,优先核对该配置。
  • 检查机器人权限:在Event Subscriptions页面的「Subscribe to bot events」分类下,需要添加对应消息场景的权限:监听私人会话消息需添加im:history,监听公开频道消息需添加channels:history,监听私人频道消息需添加groups:history。添加权限后必须点击「reinstall to workspace」重新安装应用到工作区,新权限才会生效。
  • 检查机器人访问权限:如果在频道内测试,需要先将机器人邀请进对应频道,否则无法收到频道内的消息。
  • 检查鉴权信息:确认代码中填写的token是Slack后台「OAuth & Permissions」页面的Bot User OAuth Token,signing_secret是「Basic Information」页面的Signing Secret,两者填错会导致事件校验失败,ngrok日志会返回401状态码。

内容的提问来源于stack exchange,提问作者Iago Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:12:03