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