1

少し問題がありますが、http.get を使用して OAuth 経由で Twitter ストリーミング 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();
4

2 に答える 2

3

ここで私が抱えていた問題は、OAuth リクエストが署名されていないことでした。これは、承認が失敗していたことを示しています。

OAuth は複雑なプロセスであるため、既に開発されているライブラリまたは NPM モジュールを使用することをお勧めします。

このインスタンスで使用した特定の NPM はnode-oauthでした

于 2013-04-11T09:19:03.733 に答える
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
   });
}
于 2013-05-08T09:07:48.790 に答える