2015-04-13 63 views
1

我已经通过npm安装了node-twitter并创建了一个index.js文件,其代码如下。当我在控制台中运行node index.js时,我没有收到任何回应。我已经包含了我自己的密钥和秘密,这似乎并不是问题所在。node twitter npm package

var Twitter = require('twitter'); 

var client = new Twitter({ 
    consumer_key: process.env.TWITTER_CONSUMER_KEY, 
    consumer_secret: process.env.TWITTER_CONSUMER_SECRET, 
    access_token_key: process.env.TWITTER_ACCESS_TOKEN_KEY, 
    access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET, 
}); 

client.stream('statuses/filter', {track: 'nyc'}, function(stream){ 
    stream.on('data', function(tweet) { 
    console.log(tweet.text); 
    }); 

    stream.on('error', function(error) { 
    console.log(error); 
    }); 
}); 

回答

2

你连接到Twitter的数据流的一个端点,所以你只会看到更新,如果有人发布与那一时刻它的文本“纽约”鸣叫。

我怀疑这是不是你的意图,而不是你要搜索包含文本“纽约”最近的鸣叫,如下:

client.get('/search/tweets.json?q=nyc', function(error, tweets, response){ 
    if(error) throw error; 
    console.log(tweets); 
}); 

Twitter的搜索API文档here。如果你真的希望流推文,我建议使用像forever.js的东西,让脚本运行足够长的时间来听取推文和输出它们。

编辑:既然你想流的鸣叫,因为他们进来,你可以使用forever.js,让您的脚本运行,如下:

var forever = require('forever-monitor'); 

var child = new (forever.Monitor)('twitter.js', { 
    max: 1, 
    silent: false, 
    args: [] 
}); 

child.on('exit', function() { 
    console.log('twitter.js has exited after 3 restarts'); 
}); 

child.start(); 

凡twitter.js在文件张贴在这个问题。如果您想从指定时间向后或向前搜索,可以在Twitter API docs中找到有关如何操作的详细信息。

+0

我实际上正在试图弄清楚如何在那一刻得到推文并向前迈进。 – DKH

+0

我已经编辑了我的答案,上面有一个如何让你的脚本使用forever.js运行的例子。希望这可以帮助! – remyp

+0

真棒..谢谢! – DKH

相关问题