node.js的ntwitter模块出错

时间:2013-05-03 13:49:45

标签: node.js express twitter

我尝试使用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错误

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

除了传递给twitter构造函数的参数中“token”的拼写外,代码的所有内容都很好。您需要将access_tocken_key更改为access_token_key,将access_tocken_secret更改为access_token_secret。您的错误(401)是身份验证问题;该更改应该有希望导致ntwitter将正确的用户身份验证详细信息传递给Twitter API。

答案 1 :(得分:0)

我遇到了同样的问题,这是因为我的服务器系统时钟已经浮动了六分钟。通常,API会给你大约五分钟的误差。