Twitterstream媒体API – Node.js返回未经授权的错误(OAuth)

我正尝试使用http.get通过OAuth连接到Twitters Streaming API,虽然我有一个小问题。

脚本不断返回未经授权

我使用的代码如下,任何人都可以告诉我,如果我失去了一些愚蠢的东西或我的头不正确。

var https = require('https'); var options = { host: 'stream.twitter.com', path: '/1.1/statuses/filter.json?track=bieber', method: 'GET', headers: { authorization: ' OAuth oauth_consumer_key = "", oauth_nonce = "", oauth_signature = "", oauth_signature_method = "HMAC-SHA1", oauth_timestamp = "", oauth_token = "", oauth_version = "1.0" ' } }; var req = https.request(options, function(res) { res.setEncoding('utf8'); res.on('data', function (chunk) { console.log(chunk); }); }); req.on('error', function(e) { console.log('Oops... ' + e.message); }); req.write('data\n'); req.write('data\n'); req.end(); 

我在这里遇到的问题是OAuth请求没有被签名,授权失败。

OAuth是一个复杂的过程,最好使用已经开发的库或NPM模块。

我在这个例子中使用的NPM是node-oauth

尝试这个:

 var options = { host: 'stream.twitter.com', path: '/1.1/statuses/filter.json?track=bieber', method: 'GET', auth : "YOUR_ID:YOUR_PASS" }; var https = require('https'); https.get(options,function(res){ res.on("data",function(trunk){ //YOUR CODE }).on("end",function(){ //YOUR CODE }).on("error",function(e){ //YOUR CODE }); }