2012-04-17 3 views
4

Node에 약간의 Google Pagespeed 클라이언트를 구축하려고하는데 https 클라이언트에 어려움을 겪고 있습니다. 요청은 항상 302 응답 반환하지만 동일한 URL이Node.js 및 Google Pagespeed API

options = { 
    host: 'https://www.googleapis.com' 
    , path: '/pagespeedonline/v1/runPagespeed?url=' + program.uri + '/&prettyprint=false&strategy=' + program.strategy + '&key=' + program.key 
} 

https.get(options, function(res) { 
    console.log("statusCode: ", res.statusCode); 
    console.log("headers: ", res.headers); 
    res.on('data', function(d) { 
     process.stdout.write(d); 
    }); 
}).on('error', function(e) { 
    console.error(e); 
}); 

내가 뭔가를 놓치고 있습니까 컬에서 완벽하게 작동하고 브라우저를? 몇 가지 헤더를 보내려고 시도했지만 큰 차이가 없었습니다

답변

3

호스트에 https://라는 접두어를 붙이면 좋을 것입니다. docs here을 참조하십시오. 당신은 그것의 API에 대한 구글의 노드 클라이언트 라이브러리를 사용할 수 있습니다

 
var https = require('https'), 
    key = 'KEY', 
    url = 'URL', 
    strategy = 'desktop'; 

https.get({ 
    host: 'www.googleapis.com', 
    path: '/pagespeedonline/v1/runPagespeed?url=' + encodeURIComponent(url) + 
      '&key='+key+'&strategy='+strategy 
    }, function(res) { 
     console.log("statusCode: ", res.statusCode); 
     console.log("headers: ", res.headers); 

     res.on('data', function(d) { 
     process.stdout.write(d); 
     }); 
}).on('error', function(e) { 
    console.error(e); 
}); 
+0

최고, 정말 고마워요을! –

1

:

여기에 그냥 자신의 URL 및 API 키를 대체, 작업 예입니다.

var googleapis = require('googleapis'); 
googleapis.load('pagespeedonline', 'v1', function(err, client) { 
    // set your api key 
    client = client.withApiKey('...'); 
    var params = { url: '...', strategy: '...' }; 
    var request = client.pagespeedonline.pagespeedapi.runpagespeed(params); 
    request.execute(function (err, result) { 
    console.log(err, result); 
    }); 
}); 

클라이언트 라이브러리는 사용자의 경우에 유용 할 수있는 배치 요청도 지원합니다. 추가 문서는 https://github.com/google/google-api-nodejs-client

0

google-api-nodejs-client은 Google API에 액세스하기 위해 공식적으로 지원되는 Google의 node.js 클라이언트 라이브러리입니다.

npm install googleapis 
PageSpeed ​​통계 API를 들어

, 지금과 같은 somehting 것 :

require('googleapis') 
    .discover('pagespeedonline', 'v1') 
    .execute(function (err, psclient) { 
     var params = { url: URLHERE }; // others params https://developers.google.com/speed/docs/insights/v1/getting_started 
     var request = psclient.pagespeedonline.pagespeedapi.runpagespeed(params).withApiKey(YOUR_API_KEY);; 
     request.execute(function (err, result) { 
      //do something 
     }); 
    });