Google/YouTube API V3: An client error occurred: HTTP Error: Unable to connect: 'fopen(compress.zlib://https://www.googleapis.com/youtube/v3/
Desarrollando un plugin usando la API de Google/YouTube aparece el error
“Notice: Undefined index: q in” y al realizar consultas aparece el error
“An client error occurred: HTTP Error: Unable to connect:
'fopen(compress.zlib://https://www.googleapis.com/youtube/v3/”
El error “Undefined index” aparece porque no se ha definido ningún valor para el array ‘q’, se puede quitar con las funciones error_reporting(0); en el script, no lo resuelve, solo lo oculta. Para resolver se debe usar un if:
Para if antes del formulario:
if(empty($_GET['q'])) {
$_GET['q'] = "";
}
dependiendo de como se obtenga el array con GET ó POST se debe adecuar el código; si el array no está definido, lo definimos; de cierto modo PHP nos está protegiendo contra códigos de inyección, nos advierte que el indice del array está vacío y nos da la oportunidad de corregirlo con algún valor esperado.
El error “An cliente error ocurred: HTTP Error: Unable to connect:’fopen(compress.zlib://https://www.googleapis.com/youtube/v3/” ocurre porque el cliente no sabe como interpretar o manejar la petición y se puede dar por dos cosas: no está habilitada (o compilada) la extensión fopen en php.ini y no esta habilitada la extensión openssl en php.ini.
La solución es habilitar las extensiones extension=php_openssl.dll (en windows)
allow_url_fopen = On
allow_url_include = On
en el archivo php.ini
El error “Undefined index” aparece porque no se ha definido ningún valor para el array ‘q’, se puede quitar con las funciones error_reporting(0); en el script, no lo resuelve, solo lo oculta. Para resolver se debe usar un if:
Para if antes del formulario:
if(empty($_GET['q'])) {
$_GET['q'] = "";
}
dependiendo de como se obtenga el array con GET ó POST se debe adecuar el código; si el array no está definido, lo definimos; de cierto modo PHP nos está protegiendo contra códigos de inyección, nos advierte que el indice del array está vacío y nos da la oportunidad de corregirlo con algún valor esperado.
El error “An cliente error ocurred: HTTP Error: Unable to connect:’fopen(compress.zlib://https://www.googleapis.com/youtube/v3/” ocurre porque el cliente no sabe como interpretar o manejar la petición y se puede dar por dos cosas: no está habilitada (o compilada) la extensión fopen en php.ini y no esta habilitada la extensión openssl en php.ini.
La solución es habilitar las extensiones extension=php_openssl.dll (en windows)
allow_url_fopen = On
allow_url_include = On
en el archivo php.ini
Comentarios