带有node.js的Twitter机器人转发转发

时间:2017-06-24 17:24:10

标签: node.js twitter bots

我正在制作一个基本的Twitter机器人,它会搜索推文中的某个单词并回复它们。

问题是它回复推文和转推,但我希望它只回复推文。如何从流中过滤转推?

我尝试了{ track: 'hello -filter:retweets'}但它没有用。



console.log('The bot is starting');


var ntwitter = require('ntwitter');

var bot = new ntwitter({
  consumer_key: '---',
  consumer_secret: '---',
  access_token_key:  '---',
  access_token_secret: '---'
});

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: 'hello'}, function(stream) {

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

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

      if (tweet.text.match(/hello/)) {

          bot.updateStatus('@' + tweet.user.screen_name + 'hello' , {in_reply_to_status_id: tweet.id_str} , callback);
          console.log("done")
       }
      });

     });
}


startStreaming();




1 个答案:

答案 0 :(得分:1)

检查retweeted_status

stream.on('data', function (tweet) {
    if (!tweet.retweeted_status) {
    //...

我还写了一个像bot一样的小推特,也许它可以帮到你: https://github.com/abimelex/twivorite