带有node.js的Twitter流API请求时的ERROR状态代码401:<anonymous>

时间:2017-06-18 06:55:33

标签: node.js twitter twitter-oauth

我对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);
    });
});

2 个答案:

答案 0 :(得分:0)

我找到了解决方案。

访问令牌有一个前缀,例如“44553093-DEfu2ftEiHfRopZsL0YXmTSrOHDuhgyZNzrSW8LqY”。您缺少前缀,即“44553093”。我犯了同样的错误。

该页面的UI不理想,因为令牌分为两行,很容易错过包含前缀的第一行。见下图。

enter image description here

答案 1 :(得分:0)

这是一篇较旧的文章,但这对其他人还是有帮助的

更改:

twitter.stream('filter', {track: 'love'}, function(stream){

收件人:

twitter.stream('statuses/filter', {track: 'love'}, function(stream){