2017-01-16 6 views
0

のための「user_is_bot」私は私がした場合、私はこのスラックボットエラー:channels.join

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 https://api.slack.com/methods/channels.joinを使用して、新しいチャネルを作成しようとしているが、この応答に

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

を取得しています間違って私に教えてください。私は余裕のあるAPIを学び始めました。

答えて

2

user_is_botを取得している理由は、channels.joinはボットユーザーが使用できないということです。あなたがchannels.createを使用したいと思うでしょうチャネルを作成するには

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

:それは、このメソッドのドキュメントで言うように。ただし、その方法はボットユーザーが使用することはできません。

一般的な解決策は、ボットユーザーが使用できないすべての方法に対してOAuthをインストールした後にスラックからSlackアプリケーションが受け取ったbot_access_tokenではなく、完全なaccess_tokenを使用することです。新しいチャンネルを作成します。ここで

両方のトークンとのスラックからの応答がどのように見えるかにOAuth documentationからの例です:

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