13

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

这是 api https://www.googleapis.com/pagespeedonline/v5/runPagespeed

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

我在哪里可以找到 v5 中的分数?

4

4 回答 4

17

它是Jeroen 描述的json.lighthouseResult.categories.performance.score 。

您可以使用以下示例返回所有可能的审计类别:

  • 网址:https://www.google.com/
  • 返回字段: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%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}


JSON-Response 看起来像这样:

{
    "lighthouseResult": {
        "categories": {
            "performance": {
                "score":0.99
            },
            "accessibility": {
                "score":0.7
            },
            "best-practices": {
                "score":0.77
            },
            "seo": {
                "score":0.9
            },
            "pwa": {
                "score":0.56
            }
        }
    }
}
于 2019-02-01T09:15:08.020 回答
14

我认为是以下内容:json.lighthouseResult.categories.performance.score

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

于 2018-11-17T22:39:34.490 回答
0

我根据以前的答案创建了简单的 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;
}
于 2021-04-25T09:41:01.687 回答
0

“我认为是以下内容: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
        }
    }
}

}

于 2021-07-22T11:35:51.550 回答