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

Comentarios

Entradas populares de este blog

El sistema no encontró la opción de entorno especificada

Microsoft Publisher: Publisher ha encontrado un problema con el archivo que intenta abrir. Para proteger el equipo, Publisher no abrirá el equipo. (Error 1100931)

Error 1083, el programa ejecutable en el que está configurado este servicio no implementa el servicio