【问题标题】:What OAuth Scopes are required for a listen & reply Slack Bot using the Slack Events API?使用 Slack Events API 侦听和回复 Slack Bot 需要哪些 OAuth 范围?
【发布时间】:2016-12-28 06:59:02
【问题描述】:

我正在尝试制作一个机器人,它可以收听所有公共和私人频道以及团队的即时消息,并在看到某些触发词时回复。这将是一个“Slack 应用程序”,可使用“添加到 Slack”按钮安装到您的团队,并包括一个“机器人用户”。

我已请求“bot”OAuth 范围,并订阅了“message.channels、message.groups 和 message.im”团队事件(https://api.slack.com/apps/myAppId/event-subscriptions),但似乎没有通过事件接收事件 POST发送新消息时的 API。

添加 "channels:history,groups:history,im:history" 范围使机器人接收这些事件 POST,但我相信仅适用于添加机器人的用户,因此它不会观看添加用户的组不是其他 2 个用户的成员或 IM 之间的消息。这意味着行为会有所不同,具体取决于安装我的机器人的用户。

有没有办法为整个团队安装应用程序/机器人?文档似乎表明“机器人”范围应该能够接收事件,但我没有看到这一点(我需要上面的频道:历史范围等)。

bot - 当您的 Slack 应用程序包含 bot 用户功能时请求此范围。与incoming-webhook 和命令不同,bot 作用域授予您的bot 用户访问Web API 方法子集、RTM API 和Events API 中某些事件类型的权限。

(来自https://api.slack.com/docs/oauth-scopes

关于机器人的页面还声称机器人可以通过 RTM API 接收所有消息:

此 websocket 将向您发送在邀请机器人用户的公共和私人渠道中发生的所有消息和活动,以及通过直接消息发送给它的消息。机器人用户通过向 rtm.start API 方法发送经过身份验证的调用,使用 RTM API 打开此 websocket。要了解有关连接到 RTM API 的更多信息,请阅读此处的文档。 (来自https://api.slack.com/bot-users

在不需要使用 RTM API 或添加上述额外范围的情况下,事件 API 中是否可以实现相同的行为?

【问题讨论】:

  • 自从将机器人用户添加到我的应用程序后,“事件订阅”页面上出现了“机器人事件”部分,我可以在其中订阅“message.channels”并且不需要频道:历史许可(与文档相反)。但是,机器人用户需要被邀请到我想要监控的所有频道,这使得安装过程更加复杂。

标签: oauth slack-api slack


【解决方案1】:

我从您的评论中了解到,您已经了解机器人范围(和 channels.message 事件订阅)允许您的机器人从它所在的频道接收

你有两个选择 1)除了机器人之外,您还要求 channel.write 范围,并且您在所有频道中邀请机器人(使用 user 令牌,而不是机器人令牌) 2) 你在你的引导上工作,并想办法让你的“冠军”,即安装你的应用程序的用户,在相关频道中邀请你的机器人。

请记住,解决方案 1) 通常被视为非常具有侵入性,尤其是在大多数人没有听说过您的应用也没有决定安装它的大型团队中。但它可能适用于一些非常具体的用例。选项 2) 是推荐路线,但很难 :-) 祝你好运!

【讨论】:

    猜你喜欢
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2019-01-14
    相关资源
    最近更新 更多