2016-11-23 17 views
1

nodejsに自分の入力に基づいて返信するスラックボットを作ろうとしています。しかし、これまで、今ボットは、これが私のボットのコードSlack Botノードjsの自分のメッセージに返信

let Bot = require('slackbots'); 

// create a bot 
let settings = { 
    token: 'xoxb-10584202949', 
name: 'BotHelp'}; 

let bot = new Bot(settings); 
bot.on('start', function() { 

    bot.postMessageToChannel('general', 'At your service'); 

    }); 

bot.on('message',function (data) { 
    console.log(data); 
    if (data.username != "BotHelp" && data.subtype != 'bot_message'){ 
    bot.postMessageToChannel('general', 'Yoooo'); 
    } 
}); 

データプリントだから、

{ type: 'hello' } 
{ text: 'At your service', 
    username: 'BotHelp', 
    bot_id: 'B336WGVSM', 
    type: 'message', 
    subtype: 'bot_message', 
    team: 'T2ZAW44P3', 
    user_team: 'T2ZAW44P3', 
    channel: 'C303W2D4M', 
    ts: '1479877794.000266' } 
{ type: 'presence_change', 
    presence: 'active', 
    user: 'U33QS0VEF' } 

理由のためのコンソールログで自分のメッセージに

を返信し続けます私の検証は、メッセージがボット自体から送信されたかどうかを確認することに失敗していますか?私があなただったら

はパラメータが本当にUSER_NAMEサブタイプであれば、私はチェックしたいあなたの時間

+0

あなたは検証が失敗していると思いますか? –

+0

@MathewJibin私の一般的なチャットルームでYoooを無限ループに投稿し続けるので – Alexander

+0

'data.username'と' data.subtype'は期待通りですか?メッセージをコンソールに送信したり、メッセージをコンソールに出力したりすることができます。 –

答えて

2

私は同じ問題がありました。 のメッセージイベントslackbotsはすべてのイベント、つまりuser_typing、message_marked、desktop_notificationで発生します。すべてのイベントはhereです。 は今、私は私のボットを確保するために何をしたか、それ自身をして受け取った後にメッセージを送信できませんでした:

bot.on('message',function (data) { 
    if (data.user != "Uxxxxxx" && data.message === 'message'){ 
     bot.postMessageToChannel('general', 'Yoooo'); 
    } 

data.userは一意のIDを与え、あなたはconsole.log(data)によりこれを取得し、あなたのuser IDを見つけることができます。

また、聞きたいメッセージを指定する場合は、ダイレクトメッセージと言ってください。 channel ID内dataDで始まります。プライベートチャンネルの場合、チャンネルIDはで始まります。G

希望します。私はここにはもっとたくさんのことがあると知っていますが、これが基本です。そして、あなたはこれで成長することができます。私は私がしようとしていることを知っています:D

0

いただきありがとうございます。それが正しいなら、私は来るオブジェクトのタイプをチェックしようとします(Slack APIから来るオブジェクトにキャストがあるかもしれません)。私はsmall projectをあなたと非常によく似ています。同じライブラリslackbotsを使用しています。自分自身で構築したライブラリnodejslack(https://github.com/marcogbarcellos/nodejslack)でもこの問題は発生しませんでした。

関連する問題