slack bot error:channel.join的'user_is_bot'

时间:2017-01-16 09:47:07

标签: slack-api botkit

我正在尝试使用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。

1 个答案:

答案 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"
    }
}