php - test - speedpagegoogle
La API de Google PageSpeed Insights no funciona (2)
Soy un principiante en PHP, ¿entonces alguien podría ayudar a solucionarlo? Mi aplicación web muestra el error de la API de Google PageInsights.
Aquí está el código, intenté cambiar la versión a / v2 /, pero todavía no funcionó ...
public function getPageSpeed($domain, $api = "")
{
try
{
$callback_url = "https://www.googleapis.com/pagespeedonline/v1/runPagespeed?";
$data = array(
''url'' => ''http://'' . $domain,
''key'' => (empty($api) ? $_SESSION[''GOOGLEAPI_SERVERKEY''] : $api),
''fields'' => ''score,pageStats(htmlResponseBytes,textResponseBytes,cssResponseBytes,imageResponseBytes,javascriptResponseBytes,flashResponseBytes,otherResponseBytes)''
);
$curl_response = $this->curl->get($callback_url . http_build_query($data, '''', ''&''));
if ($curl_response->headers[''Status-Code''] == "200") {
$content = json_decode($curl_response, true);
$response = array(
''status'' => ''success'',
''data'' => array(
''pagespeed_score'' => (int)$content[''score''],
''pagespeed_stats'' => $content[''pageStats'']
)
);
} else {
$response = array(
''status'' => ''error'',
''msg'' => ''Google API Error. HTTP Code: '' . $curl_response->headers[''Status-Code'']
);
}
}
catch (Exception $e)
{
$response = array(
''status'' => ''error'',
''msg'' => $e->getMessage()
);
}
return $response;
}
<?php
function checkPageSpeed($url){
if (function_exists(''file_get_contents'')) {
$result = @file_get_contents($url);
}
if ($result == '''') {
$ch = curl_init();
$timeout = 60;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
}
return $result;
}
$myKEY = "your_key";
$url = "http://kingsquote.com";
$url_req = ''https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=''.$url.''&screenshot=true&key=''.$myKEY;
$results = checkPageSpeed($url_req);
echo ''<pre>'';
print_r(json_decode($results,true));
echo ''</pre>'';
?>
El código compartido por Siren Brown es absolutamente correcto, excepto que al obtener los puntajes necesitamos enviar el parámetro de consulta & strategy = mobile o & strategy = desktop para obtener los resultados respectivos de la API de velocidad de página.
$url_mobile = ''https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=''.$url.''&screenshot=true&key=''.$myKEY.''&strategy=mobile'';
$url_desktop = ''https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=''.$url.''&screenshot=true&key=''.$myKEY.''&strategy=desktop'';