Twitterbot使用节点和javascript连续循环

Twitterbot使用节点和javascript连续循环,javascript,node.js,twitter,Javascript,Node.js,Twitter,这是我第一次在这里发帖,如果问得不对,请提前道歉 我正在做一个项目,我有一个推特机器人,每次某个帐户发推特时都会发推特 当我设置一个测试帐户时,我可以让它工作,但当我使用真实帐户(一个流行的帐户)时,我的机器人会一直在推特 我的代码基于YouTube上Daniel Shiffman的twitter机器人教程: …好的,作为编辑,我通过另一个论坛发现,原因是我还加入了我希望我的机器人对推特做出反应的推特的任何转发/爱等..根据推特API文档: 跟随 以逗号分隔的用户ID列表,指示应在流中传递其推文

这是我第一次在这里发帖,如果问得不对,请提前道歉

我正在做一个项目,我有一个推特机器人,每次某个帐户发推特时都会发推特

当我设置一个测试帐户时,我可以让它工作,但当我使用真实帐户(一个流行的帐户)时,我的机器人会一直在推特

我的代码基于YouTube上Daniel Shiffman的twitter机器人教程:

…好的,作为编辑,我通过另一个论坛发现,原因是我还加入了我希望我的机器人对推特做出反应的推特的任何转发/爱等..根据推特API文档:

跟随 以逗号分隔的用户ID列表,指示应在流中传递其推文的用户。不支持以下受保护的用户。对于每个指定的用户,流将包含: 用户创建的推文。 用户转发的推文。 回复用户创建的任何推文。 用户创建的任何推文的转发。 手动回复,无需按下回复按钮即可创建(例如“@twitterapi I agree”)。

所以我现在需要做的是实现一些逻辑,这样我的机器人将只对我关注的账户的实际推特做出反应,而不是对任何转发/收藏等做出反应

我已将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;
}  */ 
//这是为了尝试将我的机器人的反应限制在我关注的账户的推特上

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");

            }
          }

任何帮助都会很好

我从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
        }
    });