slack - 哪个 slack 令牌用于我的 slack bot 应用程序
问题描述
我刚刚创建了一个新的 slack 应用程序并向其中添加了一个机器人。
现在我有 2 个可用的令牌:
- OAuth 访问令牌 (xoxp)
- 机器人用户 OAuth 访问令牌 (xoxb)
编写机器人应用程序时应该使用哪个令牌?
根据文档:
Bot 用户令牌具有一组无法修改的广泛权限
我想我可以将 xoxb 令牌用于 RTM 和 Web API,因为它具有内置范围。
但我不知道除了“广泛的权限”之外还有什么,在这种情况下我应该使用 xoxp 令牌(+ config some scopes)而不是 xoxb 令牌。
解决方案
通常,您总是希望将机器人令牌用于所有 Web API 调用,因为它代表您的机器人用户,而不是“Oauth 访问令牌”又名“用户令牌”,它代表安装您的应用程序的用户。
这意味着使用机器人令牌执行的操作总是来自机器人用户,而使用用户令牌执行的操作可能看起来来自安装应用程序的用户。(例如发布消息)
另一个好处是它内置了很多权限,所以你不需要为你的应用请求额外的权限。
但是,有些 API 方法不(完全)支持机器人令牌(例如team.accessLogs
)。对于那些您需要使用用户令牌(并请求必要的权限)的人。
您可以在每个 Web API 端点的文档中查看支持哪些令牌类型。请注意,某些 API 方法仅支持机器人相关操作的机器人令牌,不支持与其他用户相关的操作。例如,chat.delete 只能删除机器人创建的消息,而不是其他用户创建的消息。
推荐阅读
- xamarin - 用户抱怨 Xamarin Android 应用程序冻结
- reactjs - 在我的计时器结束时出现此错误:“无法对未安装的组件执行 React 状态更新。这是一个无操作,但它表明......”
- css - CSS 选择样式移除其他样式
- java - 如何正确地将值更改侦听器添加到 Map.Entry?
- wordpress - 禁止使用 WordPress 下载远程文件
- python - 如何在要应用于熊猫数据框的python函数中正确声明“NaT”?
- flutter - 我如何选择随机项目并将它们写在颤动中
- javascript - 全局反应上下文状态的映射函数增量
- python - 如何知道通过 Selenium python 发送的点击是否不起作用
- javascript - 从 .ajax 结果解析集合