我做了一个松散的应用程序,我有一个机器人。我选择了频道:历史,频道:阅读,频道:在我的许可范围内写作,我也通过了范围
"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通话中的历史范围。这真让我疯了。我应该使用客户端访问令牌,即xoxp-xxxx,而不是机器人令牌,即xoxb-xxxx?'
谢谢!
答案 0 :(得分:19)
对于将来遇到此问题的人;
你的集成机器人可以完全访问松弛的api,而松散应用程序中的机器人不会公开使用。成功完成oauth2后,您应获得2个令牌,user access token
和bot token
。 user token
用于从任何频道/组中读取历史记录,bot access token
用于向其写入。这意味着您必须始终在应用中从user token
切换到bot access token
。
另外,请记住,bot-user必须是您希望他连接的私人频道的成员。
希望有所帮助。
如果有人发现更好的方法,请随时回答以下问题。
答案 1 :(得分:2)
由于您没有提到它:您还需要在" Oauth&许可范围"。