0

我正在尝试使用 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);
  })
});

如果我错了,请告诉我。我已经开始学习 slack api。

4

1 回答 1

5

您得到的原因user_is_bot是bot 用户不能使用channels.join 。正如它在此方法的文档中所说:

user_is_bot:机器人用户无法调用此方法。

要创建频道,您需要使用channels.create。但是,机器人用户也不能使用该方法。

常见的解决方案是使用完整access_token的,而不是bot_access_token使用 OAuth 安装 Slack 应用程序后从 Slack 收到的,用于机器人用户无法使用的所有方法,例如创建新频道。

以下是OAuth 文档中关于 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"
    }
}
于 2017-01-16T11:36:53.653 回答