如何处理来自 Google API 的 500 个错误

How to handle 500 errors from Google API

如何处理 google API 错误?例如,以下脚本将从请求的网站获取屏幕截图:

        $api_response = file_get_contents("https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" . $websiteURL . "&screenshot=true");
        $result = json_decode($api_response, true);
        $screenshot1 = $result['lighthouseResult']['audits']['final-screenshot']['details']['data'];

但是如果域不存在 google returns 这个错误:

Failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error 

如何处理此错误并为此创建自定义错误页面?

我的项目在 Laravel 8.

你可以用 if 语句来完成

if(($api_response = @file_get_contents("https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=" . $websiteURL . "&screenshot=true")) !== false) {
    //success
    $result = json_decode($api_response, true);
    $screenshot1 = $result['lighthouseResult']['audits']['final-screenshot']['details']['data'];
}
else{
    //do error stuff
}