我尝试使用node.js和ntwitter模块构建Twitter流媒体应用,这是我的代码:
var app = require('express').createServer(),
twitter=require('ntwitter');
app.listen(3000);
var feed = new twitter({
consumer_key: 'MY KEY',
consumer_secret:'MY SECRET KEY',
access_tocken_key:'MY ACCESS TOCKEN KEY',
access_tocken_secret:'MY ACCESS TOCKEN SECRET'
});
feed.stream('statuses/filter',{track: ['love', 'hate']}, function(stream){
stream.on('data',function(tweet){
console.log(tweet.text);
});
});
但是我得到的是:
events.js:74
throw TypeError('Uncaught, unspecified "error" event.');
^
TypeError: Uncaught, unspecified "error" event.
at TypeError (<anonymous>)
at EventEmitter.emit (events.js:74:15)
at ClientRequest.<anonymous> (/Users/maximeheckel/Documents/My_Repositories/nodetwitter/node_modules/ntwitter/lib/twitter.js:251:14)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1628:21)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:119:23)
at CleartextStream.socketOnData [as ondata] (http.js:1523:20)
at CleartextStream.read [as _read] (tls.js:470:10)
at CleartextStream.Readable.read (_stream_readable.js:294:10)
at EncryptedStream.write [as _write] (tls.js:344:25)
我不明白为什么我会坚持这一点,因为我非常仔细地关注了很多教程。即使我克隆作者项目,我仍然会收到此错误。
希望你能提供帮助。
更新:我添加了
stream.on('error', function(error, code) {
console.log("My error: " + error + ": " + code);
});
到我的流功能,我收到HTTP 401错误
有什么想法吗?
答案 0 :(得分:2)
除了传递给twitter
构造函数的参数中“token”的拼写外,代码的所有内容都很好。您需要将access_tocken_key
更改为access_token_key
,将access_tocken_secret
更改为access_token_secret
。您的错误(401)是身份验证问题;该更改应该有希望导致ntwitter将正确的用户身份验证详细信息传递给Twitter API。
答案 1 :(得分:0)
我遇到了同样的问题,这是因为我的服务器系统时钟已经浮动了六分钟。通常,API会给你大约五分钟的误差。