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

有任何想法吗 ?

最佳答案

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

08-28 10:53