2013-04-10 253 views
1

雖然我有一個小問題,但我試圖使用http.get通過OAuth連接到Twitters Streaming API。Twitter流媒體API - Node.js返回未經授權的錯誤(OAuth)

腳本返回保持擅自

我正在使用的代碼如下,有誰能夠告訴我,如果我失去了一些愚蠢的事或我的標題是不正確的。

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(); 
+1

您有一個額外的計劃** S **在httpss://,同時,您的主機是錯誤的,看到http://nodejs.org/api/http.html#http_http_request_options_callback示例 – 2013-04-10 19:02:17

+0

我現在有請求工作,但現在我得到未經授權,我的OAuth標頭是否正確? – 2013-04-10 19:07:18

+0

所有實際的標題信息在哪裏? – 2013-04-10 19:38:17

回答

3

我在這裏遇到的問題是OAuth請求沒有被簽名,授權失敗。

OAuth是一個複雜的過程,最好使用已經開發的庫或NPM模塊。

具體NPM我在這種情況下所用node-oauth

+1

你看過['ntwitter'](https://github.com/AvianFlu/ntwitter)嗎?照顧一切:) – robertklep 2013-04-11 09:21:40

+0

我想保持項目儘可能香草:-)! – 2013-04-11 09:23:53

+0

太好了,現在你應該接受你的回答,因爲未來的訪客會知道它確實對你有用:) – 2013-04-11 10:07:24

0

試試這個:

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 
    }); 
} 
相關問題