Slack工作区管理员审批应用安装后如何执行指定操作?Django开发相关
Slack API 报错原因及解决方案
报错根因说明
1. restricted_action 错误(创建频道失败)
Slack 工作区管理员可在全局权限配置中开启「仅管理员可创建公共/私有频道」限制,开启后第三方应用的机器人身份默认不具备创建频道的权限,调用 conversations.create 接口时就会返回该错误,属于工作区权限限制的正常触发,并非你的代码 Bug。
2. channel_not_found 错误(加入频道、拉取成员列表失败)
该错误是创建频道失败后的连锁反应:你在 DjangoInstallationStore.save 方法中的逻辑是串行执行的,创建频道失败后你传入后续接口的频道 ID 本身是无效值,自然会触发找不到频道的报错,和权限配置无关。
排查及修复方案
- 先在代码中为
conversations.create接口调用添加异常捕获和返回值校验,确认该接口先于后续接口返回错误,排除代码中频道 ID 传值错误的问题 - 确认你的 Slack 应用已经申请了
channels:manage、groups:write等创建频道必需的权限 scope,且用户安装应用时已经同意了该权限授权 - 若权限 scope 配置正常,联系测试工作区的管理员查看全局频道创建限制规则:如果开启了仅管理员可创建频道,需要管理员在应用管理后台为你的应用单独开通创建频道的白名单权限,或调整全局频道创建规则
可选规避方案
如果不想调整工作区权限配置,可将自动创建频道的逻辑从安装回调中移除,改为由安装应用的用户手动触发,触发时使用用户授权的 access token 而非机器人 token 调用创建接口,只要操作用户自身具备创建频道的权限,即可绕过应用层面的权限限制。
内容的提问来源于stack exchange,提问作者Nahua Kang
相关产品推荐
相关产品推荐

