2017-01-16 4 views
0

Ich versuche, einen neuen Kanal mit slack api https://api.slack.com/methods/channels.join zu schaffen, sondern bekommen diese Antwortslack bot Fehler: 'user_is_bot' für channels.join

info: ** API CALL: https://slack.com/api/channels.join 
Response : { ok: false, error: 'user_is_bot' } 

ich versucht, dieses

controller.hears('hello', ['direct_message', 'direct_mention', 'mention'], function (bot, message) { 
    bot.api.channels.join({'name':'nag'}, function (err, response) { 
    console.log("Response : ",response); 
    }) 
}); 

Wenn ich irrigerweise lass es mich wissen. Ich habe begonnen, slack api zu lernen.

Antwort

2

Der Grund, warum Sie erhalten user_is_bot ist, dass channels.join kann nicht von einem Bot-Benutzer verwendet werden. Wie es in der Dokumentation für diese Methode sagt:

user_is_bot : This method cannot be called by a bot user.

Um Kanal zu erstellen Sie wollen channels.create verwenden. Diese Methode kann jedoch auch nicht von einem Bot-Benutzer verwendet werden. Die allgemeine Lösung besteht darin, die volle access_token, nicht die bot_access_token, die Ihre Slack-App von Slack nach der Installation mit OAuth für alle Methoden, die Bot-Benutzer nicht verwenden können, z. Erstellen eines neuen Kanals Hier

ist das Beispiel aus dem OAuth documentation, wie die Antwort von Slack mit beiden Token wie folgt aussehen:

{ 
    "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" 
    } 
} 
Verwandte Themen