2016-11-30 6 views
2

これは私が初めて投稿したので、正しく尋ねられない場合は事前にお詫びします。TwitterbotはノードとJavaScriptを連続して使用しています

私は特定のアカウントのつぶやきごとにつぶやくツイッターボットを持っているプロジェクトに取り組んでいます。

私はテストアカウントを設定すると動作しますが、実際のアカウント(一般的なアカウント)で実行すると、ボットはただちにtweetingを続けます。

私はYouTubeでダニエル・シフマン者のTwitterボットのチュートリアルに私のコードを基づかています:

... OK、私はその理由は、私はまた、任意リツイートをincoporatingだということは/ etcの愛していることを別のフォーラムを通じて発見した編集として

続きを読む ストリームにツイートを配信する必要があるユーザーを示すユーザーIDのカンマ区切りのリストです。保護されたユーザーの後はサポートされません。指定されたユーザーごとに、ストリームには以下が含まれます。 ユーザーが作成したツイート。 ツイートはユーザーによってリツイートされています。 ユーザーが作成したすべてのツイートに返信します。 ユーザーが作成したすべてのツイートのリツイート。 返信ボタンを押さずに作成された手動返信(例:「@twitterapi I agree」)。

だから私は今、何をする必要があるか私のボットは唯一、私はそれのいずれかのリツイート/お気に入りなどに追従しておりません、アカウントの実際のつぶやきに反応するように、いくつかのロジックを実装..です

I以下の私の元のコードと一緒にANのif/else文が含まれている:

console. log('The streambot is starting'); 
     var Twit = require('twit'); 
     var config = require('./config'); 
     var T = new Twit(config); 


     var stream = T.stream('statuses/filter', { follow: '(//TWITTERID OF ACCOUNT GOES HERE' }); 
     stream.on('tweet',thisTweet); 


/* 
if ('statuses/filter' != userID){ 
    console.log("error") 
} else { 
    thisTweet; 
} */ 

//このIFは

function thisTweet(){ 

      var randomWords= "//a list of random words" 

      var splitrandom = randomWords.split(","); 

      //picks a random word from list 
      var oneWord = splitrandom [Math.floor(Math.random() * splitrandom .length)]; 

     tweetIt(oneWord); 

     } 

      function tweetIt(txt){ 

      var tweet = { 
      status : txt 
      } 


      T.post('statuses/update',tweet,tweeted); 

      } 

      function tweeted(err, data, response) { 
      if (err){ 
       console.log("something went wrong!"); 
      }else{ 
       console.log("It Worked"); 

      } 
      } 
次だけ私はアカウントのツイートに私のボットの反応を試してみて、制限することがあります

どんな助力も素晴らしいでしょう!

答えて

0

私はこの1つ上のTwitterの開発者からいくつかの助けを得ました:

これはトリックを行う必要があります。

// define the ID of the user we are interested in 
var userID = 'some number'; 

// open a stream following events from that user ID 
var stream = T.stream('statuses/filter', { follow: (userID) }); 

    stream.on('tweet', function (tweet) { 
     // compare the user ID inside the Tweet object we passed in 
     // to check it matches 
     if (tweet.user.id == userID) { 
      console.log("this was sent by the user we want to track") 
      // now do something else 
     } else { 
      console.log(tweet.user.id + " - " + tweet.user.screen_name) 
      // so we can ignore it 
     } 
    }); 
関連する問題