我正在使用Slack App构建一个Slack bot.我已设法通过Event API授权并成功接收事件.
我试图找出如何只听直接提到的机器人.
因此,当有人向公共或私人频道发送消息时以及当机器人被直接标记为@bot时,它应该触发事件
Daniel: Hi there bot (does not trigger) Jeremy: @bot hi there (triggers Event API)
是否有松弛事件这样做?或者还有另一种方法吗?我不想将其硬编码到我的服务器端应用程序中,因为那时我将收到很多不必要的事件.
您可以选择在应用配置(事件订阅)中订阅团队活动或Bot事件.对于您的情况,我建议订阅bot事件.
然后,您需要订阅一个事件类型.由于您希望机器人能够收听您想要订阅message.channels,message.groups,message.im和message.mpim的各种渠道.安装Slack应用程序时,请不要忘记请求相应的范围.
您的机器人现在将接收针对您的机器人所属的任何渠道(公共,私人,直接消息,直接消息组)中发布的所有消息的事件请求.
作为最后一步,您必须过滤并解析这些事件请求,以便您的机器人只对@ -mentions作出反应.
2018年10月更新
Slack现在还支持一种特殊事件类型,只允许您订阅机器人提及: app_mention
因此,如果您只想接收机器人提及,则不再需要订阅任何其他事件(message.channels
,message.groups message.mpim
).
但是,如果您还想直接向机器人发送消息,您仍需要订阅message.im
.