Node.js和Google Pagespeed API
我试图在Node中构建一个小的GooglePageSpeed客户端,但我正在努力使用https客户端。请求总是返回302响应,但完全相同的url在curl和浏览器中工作得非常好Node.js和Google Pagespeed API,node.js,curl,https,pagespeed,Node.js,Curl,Https,Pagespeed,我试图在Node中构建一个小的GooglePageSpeed客户端,但我正在努力使用https客户端。请求总是返回302响应,但完全相同的url在curl和浏览器中工作得非常好 options = { host: 'https://www.googleapis.com' , path: '/pagespeedonline/v1/runPagespeed?url=' + program.uri + '/&prettyprint=false&strategy=' +
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);
});
我错过什么了吗?尝试发送几个不同的头,但没有多大区别在主机中删除
https://
前缀,您应该可以开始了。看
下面是一个工作示例,只需替换您自己的URL和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);
});
var https=require('https'),
key='key',
url='url',
策略='桌面';
https.get({
主持人:“www.googleapis.com”,
路径:'/pagespeedonline/v1/runPagespeed?url='+encodeURIComponent(url)+
“&key=”+key+“&strategy=”+strategy
},功能(res){
console.log(“状态码:”,res.statusCode);
日志(“标题:”,res.headers);
res.on('数据',功能(d){
进程.stdout.write(d);
});
}).on('error',函数(e){
控制台错误(e);
});
您可以将Google的节点客户端库用于其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);
});
});
客户端库还支持在您的情况下可能有用的批处理请求。进一步的文档是Google官方支持的node.js客户端库,用于访问Google API
npm install googleapis
对于PageSpeed Insights API,它现在是这样的:
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
});
});