Slack API如何为机器人配置user scopes并与bot scopes结合使用
Slack细粒度权限模式下同时配置Bot Scopes与User Scopes解决方案
细粒度权限模式的Slack应用本身支持同时配置两类scopes,你遇到的报错几乎都是OAuth请求配置错误导致的,可按照以下步骤排查修复:
1. 后台权限配置校验
进入Slack应用管理后台的「OAuth & Permissions」页面,确认两类scopes添加在正确的板块:
- Bot Scopes必须添加到Bot Token Scopes板块
- User Scopes必须添加到User Token Scopes板块
添加完成后需要重新将应用安装到目标工作区,配置才会生效。
2. OAuth授权请求参数修正
There was something wrong with your request报错最常见的原因是scope参数格式错误,细粒度权限模式下两类scopes需要分开传递:
- Bot Scopes放在
scope参数中,多个scope用空格分隔 - User Scopes放在
user_scope参数中,多个scope用空格分隔 - 必须传递
granular_bot_scope=1参数,明确指定使用细粒度权限模式
示例请求参数片段:
scope=channels:read chat:write&user_scope=users:read groups:read&granular_bot_scope=1
3. 重定向地址校验
确认应用后台「OAuth & Permissions」页面的Redirect URLs列表中,已完整添加你发起OAuth请求时使用的重定向地址,地址必须完全匹配,协议、域名、端口、路径、尾斜杠均不能有差异。
4. 授权结果获取
授权通过后,Slack返回的响应中会同时返回两类可用token:
xoxb-开头的Bot Token,对应你申请的Bot Scopes权限xoxp-开头的User Token,对应你申请的User Scopes权限
两类token可独立调用对应权限范围内的Slack API接口。
内容的提问来源于stack exchange,提问作者Kangzeroo
相关产品推荐
相关产品推荐

