Uso de / update-cache solicitudes para actualizar páginas AMP
Intento usar / update-cache / solicitudes para actualizar algunas páginas AMP, pero obtengo 403 errores.
Se eliminó la parte / protocolo de apertura de las URL, ya que no tengo la reputación de publicar tantos enlaces, pero todo es https.
Tengo una página en: www.qponverzum.hu/ajanlat/budapest-elozd-meg-a-hajhullast-mikrokameras-hajdiagnosztika-hajhagyma-es-fejborvizsgalattal-tanacsadas-5000-ft-helyett-2500-ft-ert-biohajklinika szepsegapolas-egeszseg / amp
Desde el caché AMP: www-qponverzum-hu.cdn.ampproject.org/c/s/www.qponverzum.hu/ajanlat/budapest-elozd-meg-a-hajhullast-mikrokameras-hajdiagnosztika-hajhagyma-es-fejborvizdasdasalattal-tanac -5000-ft-helyett-2500-ft-ert-biohajklinika-szepsegapolas-egeszseg / amp
He estado siguiendo la documentación en developers.google.com/amp/cache/update-ping
Si hago una solicitud / update-ping, parece funcionar bien, devuelve un 200 sin respuesta de contenido, pero debido a la gran cantidad de URL / páginas nos gustaría usar / update-cache ya que permite una mayor tasa de solicitud .
Creé una clave RSA privada y pública e hice accesible la clave pública en www.qponverzum.hu/.well-known/amphtml/apikey.pub
He estado tratando de usar el siguiente código php para generar la URL de actualización de caché
$ampBaseUrl = "https://www-qponverzum-hu.cdn.ampproject.org";
$signatureUrl = '/update-cache/c/s/www.qponverzum.hu/ajanlat/budapest-elozd-meg-a-hajhullast-mikrokameras-hajdiagnosztika-hajhagyma-es-fejborvizsgalattal-tanacsadas-5000-ft-helyett-2500-ft-ert-biohajklinika-szepsegapolas-egeszseg/amp?amp_action=flush&_ts='.time();
// opening the private key
$pkeyid = openssl_pkey_get_private("file://private-key.pem");
// generating the signature
openssl_sign($signatureUrl, $signature, $pkeyid)
// urlsafe base64 encoding
$signature = urlsafe_b64encode($signature);
// final url for updating
$ampUrl = $ampBaseUrl.$signatureUrl."&_url_signature=".$signature;
La función urlsafe_b64encode que estoy usando:
function urlsafe_b64encode($string) {
return str_replace(array('+','/','='),array('-','_',''), base64_encode($string));
}
Si hago una solicitud GET simple a esta url (con un navegador o curl), obtengo un error 403 ('Su cliente no tiene permiso para obtener URL').
He revisado los registros del servidor web, pero no parece que haya ninguna solicitud hecha a la url de claves públicas.
Creo que me falta algo muy obvio, por lo que cualquier comentario sería muy apreciado.