在 PageSpeed Insights API v5 的 json 结果中查找分数

Find score inside json result of PageSpeed Insights API v5

我正在尝试 Google v5 API 页面速度洞察,但我没有在 JSON 结果中找到 SCORE。

这是apihttps://www.googleapis.com/pagespeedonline/v5/runPagespeed

在 v4 中有一个 ruleGroups.SPEED.score 包含一个带分数的整数。

我在哪里可以找到 v5 中的乐谱?

我认为是以下几点: json.lighthouseResult.categories.performance.score

Returns 最大为 1 的小数。所以你必须乘以 100 才能得到百分比。对我有用.. 但是我似乎每次都没有得到相同的价值。它波动...

Jeroen描述的json.lighthouseResult.categories.performance.score

您可以使用以下示例 return 所有可能的审核类别:

  • URL: https://www.google.com/
  • Return-字段:lighthouseResult/categories/*/score
    • *是通配符
  • 缩进 (PrettyPrint):no
  • 策略:Desktop
  • 类别:
    • Performance
    • Progressive Web App (PWA)
    • Best practices
    • Accessibility
    • SEO
  • Api-密钥:{YOUR_API_KEY}
    使用这些参数,API URL 是:

    https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https%3A%2F%2Fwhosebug.com%2F&fields=lighthouseResult%2Fcategories%2F*%2Fscore&prettyPrint=false&strategy=desktop&category=performance&category=pwa&category=best-practices&category=accessibility&category=seo&key={YOUR_API_KEY}


JSON-响应如下所示:

{
    "lighthouseResult": {
        "categories": {
            "performance": {
                "score":0.99
            },
            "accessibility": {
                "score":0.7
            },
            "best-practices": {
                "score":0.77
            },
            "seo": {
                "score":0.9
            },
            "pwa": {
                "score":0.56
            }
        }
    }
}

我根据以前的答案创建了简单的 php 脚本,可以帮助您找到桌面和移动乐谱。只需提供您的网站 url 和 API 密钥,您就可以找到 here

<?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

Returns 最大为 1 的小数。所以你必须乘以 100 才能得到百分比。对我有用.. 但是我似乎每次都没有得到相同的价值。它波动...”如 Jeroen 所说。100% 正确

“这不可能是正确的。我已经检查了几页并且 json.lighthouseResult.categories.performance.score 比 developers.google 的分数高得多。com/speed/pagespeed/insights – 帕斯卡·巴若拉"

这是不正确的,因为您看到的是桌面结果而不是移动结果。 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%2Fwhosebug.com%2F&fields=lighthouseResult%2Fcategories%2F*%2Fscore&prettyPrint=false&strategy=mobile&category=performance&category=pwa&category=best-practices&category=accessibility&category=seo

JSON-响应如下所示:

{
"lighthouseResult": {
    "categories": {
        "performance": {
            "score":0.87
        },
        "accessibility": {
            "score":0.7
        },
        "best-practices": {
            "score":0.77
        },
        "seo": {
            "score":0.9
        },
        "pwa": {
            "score":0.56
        }
    }
}

}