我正在制作一个基本的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();

答案 0 :(得分:1)
检查retweeted_status
stream.on('data', function (tweet) {
if (!tweet.retweeted_status) {
//...
我还写了一个像bot一样的小推特,也许它可以帮到你: https://github.com/abimelex/twivorite