Slack机器人被移出频道时如何获取对应的触发事件通知?
问题根因
你的推测符合Slack事件推送的底层逻辑:member_left_channel 属于频道级bot事件,仅会推送给当前仍在对应频道内、且订阅了该事件的机器人实例。当机器人被移出频道的操作完成后,机器人已失去频道成员身份,平台自然不会将该事件推送给已不在频道范围内的机器人。
解决方案
直接订阅两个应用级事件即可覆盖对应场景,无需依赖频道级事件:
- 订阅
channel_left事件:用于接收机器人被移出公共频道的通知 - 订阅
group_left事件:用于接收机器人被移出私有频道/私人群组的通知
上述两个事件属于应用级全局推送事件,不需要机器人保持频道成员身份即可正常接收,事件负载会直接返回被移出的频道ID、操作执行时间、触发操作的用户ID等核心信息。
配置注意事项
- 事件需要在Slack应用管理后台的「Event Subscriptions」板块的 App Level Events 分类下勾选,不要在「Bot Events」分类下配置,后者的推送逻辑默认要求机器人在频道内。
- 新增事件订阅后需要重新将应用安装到对应工作空间,权限变更才会生效。
- 事件核心负载参考如下:
{ "type": "channel_left", "channel": "C0123456789", // 被移出的频道ID "actor_id": "U9876543210", // 执行移出操作的用户ID "event_ts": "1620000000.000000" // 操作触发时间戳 }
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

