我做了一个松散的应用程序,我有一个机器人 . 我选择了 Channels :历史, Channels :阅读, Channels :在我的许可范围内写作,我也通过了范围
"scope":"bot channel:history channel:read channel:write"
在进行我的oauth2验证(使用python)时,我得到了范围的响应
"scope":"identify,bot,channels:history,channels:read,channels:write"
以及客户端和机器人访问令牌 .
现在,当我进行api调用以获取我的机器人被邀请的 Channels 的历史记录时,我得到了
{
ok: false,
error: 'missing_scope',
needed: 'channels:history',
provided: 'identify,bot:basic'
}
有人可以告诉我哪里出错了 . 我如何 PROVIDE Channels :我的api电话中的历史范围 . 这真让我疯了 . 我应该使用客户端访问令牌,即xoxp-xxxx,而不是机器人令牌,即xoxb-xxxx?
谢谢!
2 回答
对于将来遇到这个问题的人;
你的集成机器人可以完全访问松弛的api,而松散的应用程序中的机器人则不会,因为它将公开使用 . 成功完成oauth2后,您应该获得2个令牌,用户访问令牌和机器人令牌 . 用户令牌用于从任何通道/组读取历史记录,并使用bot访问令牌写入它们 . 这意味着您必须始终在应用中从用户令牌切换到机器人令牌 .
希望有所帮助 .
Ps,如果有任何更好的方法可以解决这个问题,请随时回答下面的问题 .
由于您没有提到它:您还需要在“Oauth和权限范围”下的Slack应用程序的管理页面上指定所有必需的范围 .