我对Twitter Streaming API和Node.js非常陌生(我昨天才学会了)。我正在尝试创建一个像这样https://www.youtube.com/watch?v=5b98CC9IvZ8的基本程序,它可以从Twitter发送推文。我遵循了每一步,但我得到了这个错误:
C:\Program Files\thesis>node twitter_collect.js
events.js:160
throw er; // Unhandled 'error' event
^
Error: Status Code: 401
at Request.<anonymous> (C:\Program
Files\thesis\node_modules\twitter\lib\twitter.js:277:28)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at Request.onRequestResponse (C:\Program
Files\thesis\node_modules\request\request.js:1074:10)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at HTTPParser.parserOnIncomingClient [as onIncoming]
(_http_client.js:473:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
at TLSSocket.socketOnData (_http_client.js:362:20)
at emitOne (events.js:96:13)
以下是我的代码:
var twit = require('twitter'),
twitter = new twit({
consumer_key: 'Q7IcJHDBxWtmlqSj0JgublbaJ',
consumer_secret: 'ylnM1Cfed4WMLO0VCUoIZxoLt77LTNEiqQ1h1LAtWWdfWVM2sh',
access_token: '838296902739189760-E8ZMEDA6EYLrryIOEcx2Ud5CIZiBhJQ',
access_token_secret: 'qqLAa11ysBpl4tZauPzrsITmLdJWYHr22DwGKmCkN2MI5'
});
var count = 0,
util = require('util');
twitter.stream('filter', {track: 'love'}, function(stream){
stream.on('data', function(data){
console.log(util.inspect(data));
stream.destroy();
process.exit(0);
});
});
答案 0 :(得分:0)
我找到了解决方案。
访问令牌有一个前缀,例如“44553093-DEfu2ftEiHfRopZsL0YXmTSrOHDuhgyZNzrSW8LqY”。您缺少前缀,即“44553093”。我犯了同样的错误。
该页面的UI不理想,因为令牌分为两行,很容易错过包含前缀的第一行。见下图。
答案 1 :(得分:0)
这是一篇较旧的文章,但这对其他人还是有帮助的
更改:
twitter.stream('filter', {track: 'love'}, function(stream){
收件人:
twitter.stream('statuses/filter', {track: 'love'}, function(stream){