我正在尝试 Google v5 API 页面速度洞察,但我在 JSON 结果中找不到 SCORE。
这是 api https://www.googleapis.com/pagespeedonline/v5/runPagespeed
在 v4 中有一个 ruleGroups.SPEED.score,其中包含一个带有分数的整数。
我在哪里可以找到 v5 中的分数?
我正在尝试 Google v5 API 页面速度洞察,但我在 JSON 结果中找不到 SCORE。
这是 api https://www.googleapis.com/pagespeedonline/v5/runPagespeed
在 v4 中有一个 ruleGroups.SPEED.score,其中包含一个带有分数的整数。
我在哪里可以找到 v5 中的分数?
它是Jeroen 描述的json.lighthouseResult.categories.performance.score 。
您可以使用以下示例返回所有可能的审计类别:
https://www.google.com/
lighthouseResult/categories/*/score
*
是通配符no
Desktop
Performance
Progressive Web App (PWA)
Best practices
Accessibility
SEO
{YOUR_API_KEY}
https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https%3A%2F%2Fstackoverflow.com%2F&fields=lighthouseResult%2Fcategories%2F*%2Fscore&prettyPrint=false&strategy=desktop&category=performance&category=pwa&category=best-practices&category =可访问性&类别=seo&key={YOUR_API_KEY}
{
"lighthouseResult": {
"categories": {
"performance": {
"score":0.99
},
"accessibility": {
"score":0.7
},
"best-practices": {
"score":0.77
},
"seo": {
"score":0.9
},
"pwa": {
"score":0.56
}
}
}
}
我认为是以下内容:json.lighthouseResult.categories.performance.score
返回一个以 1 为最大值的小数。所以你必须乘以 100 才能得到百分比。对我有用..但是我似乎每次都没有得到相同的价值。它波动...
我根据以前的答案创建了简单的 php 脚本,可以帮助您找到桌面和移动分数。只需提供您可以在此处找到的网站网址和 API 密钥
<?php
$key = '';
$url = '';
$mobile = find_score( $url, 'mobile', $key );
$desctop = find_score( $url, 'desktop', $key );
echo "Mobile: " . $mobile . '; ';
echo "Desctop: " . $desctop . '; ';
/**
* Find PSI api score for certain device of certain url
*
* @param string $url
* @param string $device Possible values: desctop, mobile
* @param string $key
*
* @return string | integer
*/
function find_score( $url, $device, $key = '' ) {
$url =
"https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" . $url . "&category=performance&fields=lighthouseResult%2Fcategories%2F*%2Fscore&prettyPrint=false&strategy=" . $device . "&key=" . $key;
$init = curl_init();
curl_setopt($init, CURLOPT_URL, $url);
curl_setopt($init, CURLOPT_RETURNTRANSFER, true);
$responce = curl_exec( $init );
curl_close($init);
$responce = json_decode( $responce );
if ( ! empty( $responce->lighthouseResult->categories->performance->score ) ) {
$score = $responce->lighthouseResult->categories->performance->score;
$score = $score * 100;
} else {
$score = 'API Error';
}
return $score;
}
“我认为是以下内容:json.lighthouseResult.categories.performance.score
返回一个以 1 为最大值的小数。所以你必须乘以 100 才能得到百分比。对我有用..但是我似乎每次都没有得到相同的价值。它会波动……”正如Jeroen所说。100% 正确
“这不可能是正确的。我用几页检查了这个,json.lighthouseResult.categories.performance.score 比developers.google.com/speed/pagespeed/insights 的分数高得多——Pascal Bajorat ”
这是不正确的,因为您看到的是桌面结果而不是移动结果。90% 情况下的桌面 99 或 100。
试试这个:
URL: https://www.google.com/
Return-Fields: lighthouseResult/categories/*/score
* is a wildcard
Indentations (PrettyPrint): no
Strategy: Mobile
Categories:
Performance
Progressive Web App (PWA)
Best practices
Accessibility
SEO
使用这些参数,API URL 为:
https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https%3A%2F%2Fstackoverflow.com%2F&fields=lighthouseResult%2Fcategories%2F*%2Fscore&prettyPrint=false&strategy=mobile&category=performance&category=pwa&category=best-practices&category=accessibility&category=seo
JSON-Response 看起来像这样:
{
"lighthouseResult": {
"categories": {
"performance": {
"score":0.87
},
"accessibility": {
"score":0.7
},
"best-practices": {
"score":0.77
},
"seo": {
"score":0.9
},
"pwa": {
"score":0.56
}
}
}
}