如何让Slack应用机器人忽略群组频道消息仅回复私信
需求实现可行性结论
这个需求完全可以实现,不需要额外申请权限,基于现有配置调整逻辑即可,操作方案如下:
实现方案
方案1:新增消息来源判断逻辑(无需修改订阅配置)
Slack的消息事件回调参数中自带channel_type字段标识消息来源的频道属性,你只需要在机器人响应逻辑的最外层增加如下判断规则即可:
- 仅当
channel_type字段值为im(对应单用户私信场景)时,才执行后续的回复逻辑 - 其余
channel(公共频道)、group(私有群组)、mpim(多人私信)类型的消息直接跳过处理,不返回任何响应
方案2:调整事件订阅配置(从根源避免接收群组消息)
如果不需要机器人接收任何群组频道的消息,可以直接在Slack应用管理后台的「事件订阅」板块调整订阅的事件类型:
- 删除
message.channels、message.groups、message.mpim三类群组相关的消息事件订阅 - 仅保留
message.im事件订阅即可,调整后机器人只会收到用户发来的私信消息,不需要再做额外的频道类型判断
权限说明
你当前已配置的im:history权限刚好支持读取私信频道的消息内容,完全满足需求,不需要新增或修改scope配置。
内容的提问来源于stack exchange,提问作者Rachel Dong
相关产品推荐
相关产品推荐

