3

node.js&を使用して非常に単純な Twitter ボットを作成しましたnTwitter

「特定の単語」を検索し、ユーザーにランダムな引用を返信します。私はすべてを正しく行うことができました。コードは完全に実行され、ストリーミングされます。

しかし、大きな欠点があります。ボットがツイートに返信しても、Twitter では会話として表示されません。

「特定の単語」をツイートした人をツイートするだけです。下のスナップに示されているように、ユーザーに返信しましたが、それは会話ではなく、ユーザーはツイートを削除していません。

これが私が話していることの写真です:

ここに画像の説明を入力

そして、これが私のコードです。トークンは auth.js で処理されます

var ntwitter = require('ntwitter');
var auth = require('../auth');

var bot = new ntwitter(auth);


var callback = function handleError(error) {
   if (error) {
   console.error('response status:', error.statusCode);
   console.error('data:', error.data);
  }
};

function startStreaming() {

  bot.stream('statuses/filter', { track: 'certain word' }, function(stream) {

    console.log('Listening for Tweets...');

    stream.on('data', function(tweet) {

      if (tweet.text.match(/certain\sword/)) {

          bot.updateStatus('@' + tweet.user.screen_name + ' True that' ,
          tweet.user.screen_name , callback);

       }
      });

     });
}


startStreaming();

問題はにあると思いbot.updateStatus()ます。

私を助けてください。前もって感謝します。

4

2 に答える 2

3

パラメータ in_reply_to_status_id をリクエストに追加する必要があります (これは、返信しているユーザーのツイートのステータス ID です。参照: POST statuses/update

これが例です。

function startStreaming() {
    bot.stream('statuses/filter', { track: 'certain word' }, function(stream) {
        console.log('Listening for Tweets...');
        stream.on('data', function(tweet) {
            if (tweet.text.match('certain word')) {
                bot.updateStatus('@' + tweet.user.screen_name + ' True that' ,
                    {in_reply_to_status_id: tweet.id_str}, callback);
            }
        });
    });
}

startStreaming();
于 2014-03-26T12:29:31.967 に答える