Slack API:模拟真实用户发消息时交互组件失效求助
问题原因及解决方案
这是Slack的内置安全限制导致的:
- 当设置
set_user: true时,消息会被Slack识别为普通用户发送的消息,而非机器人消息。Slack不允许普通用户发送的消息触发Block Kit交互请求,这是为了避免恶意用户构造交互组件发起未授权请求的安全风险。 - 只有以机器人身份发送的消息(即不设置
set_user: true,使用机器人token调用接口),其Block Kit交互组件才能正常触发请求到配置的「Interactivity request URL」。
可行替代方案
- 移除
set_user: true参数:保持机器人身份发送消息,交互功能会正常生效。如果需要让消息显示指定用户名称,可以通过chat.postMessage接口的username参数自定义显示名(部分工作区可能禁用自定义机器人名称,需提前确认权限)。 - 确认基础配置:确保应用已正确开启Interactivity功能,且
chat:write等必要权限已被授予(机器人模式下功能正常的话,这一步通常无需调整)。
内容的提问来源于stack exchange,提问作者Zappatta
相关产品推荐
相关产品推荐

