Slack api 提及机器人的松弛事件API
我正在使用Slack应用程序构建Slack机器人。我已成功通过事件API授权并成功接收事件 我试图找出如何只听直接提到机器人 因此,当有人向公共或私人频道发送消息,并且机器人被直接标记为@bot 公共/私人松弛通道示例:Slack api 提及机器人的松弛事件API,slack-api,slack,Slack Api,Slack,我正在使用Slack应用程序构建Slack机器人。我已成功通过事件API授权并成功接收事件 我试图找出如何只听直接提到机器人 因此,当有人向公共或私人频道发送消息,并且机器人被直接标记为@bot 公共/私人松弛通道示例: 是否存在这样的松弛事件?还是有其他方法可以做到这一点?我不想将其硬编码到我的服务器端应用程序中,因为这样我将收到许多不必要的事件。您可以选择在应用程序配置中订阅团队事件或机器人事件(事件订阅)。对于您的情况,我建议订阅bot事件 然后您需要订阅一个事件类型。因为你想让你的机器人
是否存在这样的松弛事件?还是有其他方法可以做到这一点?我不想将其硬编码到我的服务器端应用程序中,因为这样我将收到许多不必要的事件。您可以选择在应用程序配置中订阅团队事件或机器人事件(事件订阅)。对于您的情况,我建议订阅bot事件 然后您需要订阅一个事件类型。因为你想让你的机器人监听你想订阅的各种频道,然后。安装Slack应用程序时,不要忘记请求相应的作用域 您的bot现在将接收在您的bot所属的任何频道(公共、私人、直接消息、直接消息组)中发布的所有消息的事件请求 作为最后一步,您必须过滤和解析这些事件请求,以便您的机器人只对@提及作出反应 2018年10月更新 Slack现在还支持一种特殊的事件类型,允许您仅订阅bot提及: 因此,如果您只想接收bot提及,则无需再订阅任何其他事件(
message.channels
、message.groups、message.mpim
)
但是,如果你还想直接向你的机器人发送消息,你仍然需要订阅
message.im
订阅app\u-ntide
事件,而不是message.channels
来接收提及你的app/bot的事件
下面是来自slack的有效负载示例:
{
"type": "app_mention",
"user": "U061F7AUR",
"text": "<@U0LAN0Z89> is it everything a river should be?",
"ts": "1515449522.000016",
"channel": "C0LAN2Q65",
"event_ts": "1515449522000016"
}
{
“类型”:“应用程序”,
“用户”:“U061F7AUR”,
“文本”:“这就是河流应该具备的一切吗?”,
“ts”:“1515449522.000016”,
“频道”:“C0LAN2Q65”,
“事件”:“1515449522000016”
}
如果您想接收直接消息事件,也可以订阅message.im
有关应用程序的更多信息请参见
事件-
希望有帮助:)有帮助的澄清,谢谢。遗憾的是,他们最终不支持这种过滤,因为这对我的API来说是不必要的偷听。有可能与其他类型的集成一起使用吗?例如webhooks?很乐意帮助:-)。不幸的是,即将发布的Webhook只能在公共频道中使用。需要注意的是。。。我想让我的机器人回复发送给它的DM,除了提及,但我很难弄清楚如何识别这些…@wndxlori你弄明白了吗?有同样的问题。
{
"type": "app_mention",
"user": "U061F7AUR",
"text": "<@U0LAN0Z89> is it everything a river should be?",
"ts": "1515449522.000016",
"channel": "C0LAN2Q65",
"event_ts": "1515449522000016"
}