2013-05-03 56 views
1

我试图建立如何使用Node.js和ntwitter模块的Twitter流应用ntwitter模块,这里是我的代码:错误与node.js的

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

嗨,它是未经授权的HTTP身份验证? Twitter说401是: 1.不存在的用户名或密码不正确。 2.太多错误的密码猜测或其他登录率限制。你的问题是什么? – Maziyar 2013-12-04 06:56:49

回答

2

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

0

我有同样的问题,这是因为我的服务器系统时钟漂浮了六分钟。通常,API会给你一个5分钟的误差范围。