slack-api - 用于机器人提及的 Slack 事件 API

标签 slack-api slack

我正在使用 Slack App 构建一个 Slack 机器人。我已设法通过事件 API 授权并成功接收事件。
我试图找出如何只听机器人的直接提及。
因此,当有人向公共(public)或私有(private) channel 发送消息并且机器人被直接标记为 时,它应该触发一个事件。 @机器人
公共(public)/私有(private) Slack channel 示例:

Daniel: Hi there bot        (does not trigger)
Jeremy: @bot hi there       (triggers Event API)
是否有执行此操作的 Slack 事件?还是有其他方法可以做到这一点?我不想将它硬编码到我的服务器端应用程序中,因为那样我会收到很多不必要的事件。

最佳答案

您可以在应用配置(事件订阅)中选择订阅团队事件或机器人事件。对于您的情况,我建议订阅机器人事件。

然后你需要订阅一个事件类型。由于您希望您的机器人收听您想要订阅的各种 channel message.channels , message.groups , message.immessage.mpim .安装 Slack 应用程序时不要忘记请求相应的范围。

您的机器人现在将接收在您的机器人所属的任何 channel (公共(public)、私有(private)、直接消息、直接消息组)中发布的所有消息的事件请求。

作为最后一步,您必须过滤和解析这些事件请求,以便您的机器人仅对 @-mentions 使用react。

2018 年 10 月更新

Slack 现在还支持一种特殊的事件类型,只允许您订阅机器人提及: app_mention

因此,如果您只想接收机器人提及,则不再需要订阅任何其他事件(message.channels、message.groups、message.mpim)。

但是,如果您还想直接向您的机器人发送消息,您仍然需要订阅 message.im。 .

关于slack-api - 用于机器人提及的 Slack 事件 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41864731/

相关文章:

松弛错误 : failed with the error "invalid_blocks"

angularjs - 在 Express 中将数据响应到 Slack url

slack-api - 在 Slack 的传出 webhook 中添加身份验证 header ?

azure - Microsoft Bot Framework 和 Slack - 测试时始终返回 Forbidden

linux - 如何在 linux bash 脚本中使用 slack rich formatting

slack - 在 Slack API 中,im、mpim 和 group 有什么区别?

node.js - 为什么 CLIENT_EVENTS 不起作用 RTM 在我的 Slack 机器人中未定义?

javascript - 如何使用正则表达式将 Slack URL 转换为 BB 代码?

python - 使用 files.upload 图像作为 slack 消息 block 中的图像

python - 松弛客户端操作系统错误 : [Errno 24] Too many open files