发出 api 请求时缺少 slack bot 范围
slack bot scope missing while making api request
我制作了一个 slack 应用程序,其中有一个机器人。我在权限范围内选择了channels:history、channels:read、channels:write,也通过了范围
"scope":"bot channel:history channel:read channel:write"
在进行我的 oauth2 验证时(使用 python),我得到了范围为
的响应
"scope":"identify,bot,channels:history,channels:read,channels:write"
以及客户端和机器人访问令牌。
现在,当我执行 api 调用以获取邀请我的机器人加入的频道的历史记录时,我得到
{
ok: false,
error: 'missing_scope',
needed: 'channels:history',
provided: 'identify,bot:basic'
}
谁能告诉我哪里出错了。如何在我的 api 调用中 PROVIDE channels:history 范围。这真让我抓狂。我应该使用客户端访问令牌,即 xoxp-xxxx,而不是 bot 令牌,即 xoxb-xxxx 吗?'
谢谢!
由于您没有提及:您还需要在 "Oauth & Permission Scopes" 下的 Slack 应用程序的管理页面上指定所有必需的范围。
对于以后遇到这个问题的人;
您的集成机器人可以完全访问 slack api,而 slack 应用程序中的机器人则不会,因为它将公开使用。当你成功完成 oauth2 时,你应该得到 2 个令牌,user access token
和 bot token
。 user token
用于从任何 channel/groups 读取历史记录,而 bot access token
用于写入它们。这意味着您必须不断地在您的应用中从 user token
切换到 bot access token
。
此外,请记住 bot-user 必须是您希望他连接到的私人频道的成员。
希望对您有所帮助。
Ps,如果有人找到更好的解决方法,请随时在下面回答。
我制作了一个 slack 应用程序,其中有一个机器人。我在权限范围内选择了channels:history、channels:read、channels:write,也通过了范围
"scope":"bot channel:history channel:read channel:write"
在进行我的 oauth2 验证时(使用 python),我得到了范围为
的响应"scope":"identify,bot,channels:history,channels:read,channels:write"
以及客户端和机器人访问令牌。
现在,当我执行 api 调用以获取邀请我的机器人加入的频道的历史记录时,我得到
{
ok: false,
error: 'missing_scope',
needed: 'channels:history',
provided: 'identify,bot:basic'
}
谁能告诉我哪里出错了。如何在我的 api 调用中 PROVIDE channels:history 范围。这真让我抓狂。我应该使用客户端访问令牌,即 xoxp-xxxx,而不是 bot 令牌,即 xoxb-xxxx 吗?'
谢谢!
由于您没有提及:您还需要在 "Oauth & Permission Scopes" 下的 Slack 应用程序的管理页面上指定所有必需的范围。
对于以后遇到这个问题的人;
您的集成机器人可以完全访问 slack api,而 slack 应用程序中的机器人则不会,因为它将公开使用。当你成功完成 oauth2 时,你应该得到 2 个令牌,user access token
和 bot token
。 user token
用于从任何 channel/groups 读取历史记录,而 bot access token
用于写入它们。这意味着您必须不断地在您的应用中从 user token
切换到 bot access token
。
此外,请记住 bot-user 必须是您希望他连接到的私人频道的成员。
希望对您有所帮助。
Ps,如果有人找到更好的解决方法,请随时在下面回答。