我正在尝试使用slack api https://api.slack.com/methods/channels.join创建一个新频道,但获得此回复
info: ** API CALL: https://slack.com/api/channels.join
Response : { ok: false, error: 'user_is_bot' }
我试过这个
controller.hears('hello', ['direct_message', 'direct_mention', 'mention'], function (bot, message) {
bot.api.channels.join({'name':'nag'}, function (err, response) {
console.log("Response : ",response);
})
});
如果我弄错了,请告诉我。我已经开始学习松弛的api。
答案 0 :(得分:4)
您获得user_is_bot
的原因是僵尸程序用户无法使用channels.join。正如它在该方法的文档中所述:
user_is_bot
:机器人用户无法调用此方法。
要创建频道,您需要使用channels.create。但是,该方法也不能被机器人用户使用。
常见的解决方案是使用完整的access_token
,而不是Slack应用程序在使用OAuth安装后从Slack收到的bot_access_token
用于机器人用户无法使用的所有方法,例如:创建一个新频道。
以下是来自OAuth documentation的关于Slack对两个标记的响应如何的示例:
{ "access_token": "xoxp-XXXXXXXX-XXXXXXXX-XXXXX", "scope": "incoming-webhook,commands,bot", "team_name": "Team Installing Your Hook", "team_id": "XXXXXXXXXX", "incoming_webhook": { "url": "https://hooks.slack.com/TXXXXX/BXXXXX/XXXXXXXXXX", "channel": "#channel-it-will-post-to", "configuration_url": "https://teamname.slack.com/services/BXXXXX" }, "bot":{ "bot_user_id":"UTTTTTTTTTTR", "bot_access_token":"xoxb-XXXXXXXXXXXX-TTTTTTTTTTTTTT" } }