Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Twitter流API返回401_Javascript_Node.js_Twitter - Fatal编程技术网

Javascript Twitter流API返回401

Javascript Twitter流API返回401,javascript,node.js,twitter,Javascript,Node.js,Twitter,我正在使用Node.js的节点模块来尝试跟踪我正在编写的应用程序的某些hashtag,除了一个错误“error:Bad Twitter streaming request”之外,我没有从Api中得到任何东西。据我所知,我已经遵循了文档,但我显然遗漏了一些东西 以下是代码,其中有一些经过编辑: var express = require('express'); var app = express(); app.set('view engine', 'ejs'); app.use(express

我正在使用Node.js的节点模块来尝试跟踪我正在编写的应用程序的某些hashtag,除了一个错误“error:Bad Twitter streaming request”之外,我没有从Api中得到任何东西。据我所知,我已经遵循了文档,但我显然遗漏了一些东西

以下是代码,其中有一些经过编辑:

var express = require('express');
var app = express();

app.set('view engine', 'ejs');

app.use(express.static('public'));

app.get('/', function(req, res) {
    res.render('pages/index');
});

var http = require('http').createServer(app);
http.listen(80);

var io = require('socket.io').listen(http);

var twitterApi = require('twit');

var twitter = new twitterApi({
    consumer_key: '***',
    consumer_secret: '***',
    app_only_auth: true
});

var stream = twitter.stream('statuses/filter', {track: '#twitter'});
stream.on('tweet', function(tweet){
    console.log(tweet);
});

我正在通过Vagrant开发Ubuntu虚拟机,如果这有什么区别的话?

你的API认证正确吗?401通常与未经授权的请求一起返回,因此我猜它一定与您的API凭据一起返回。

您没有提供访问令牌和访问令牌密钥

是的,我已仔细检查了应用程序的凭据是否正确。我在一些地方看到我必须通过https连接,可能是这样吗?请尝试使用api流链接进行curl,并告诉我它是否有效,我可能已经发现了您的问题。我使用track=twitter并对其进行了测试,结果很好。您的机器中的时间正确吗?有一个已知的问题,本地机器和服务器机器的时间戳不匹配,服务器抛出401错误。我刚从签名生成器中取出“访问令牌”和“访问令牌机密”,401失败。至少再近一点。我以为这个应用程序只会运行吗?