with plus origins one google boton authorized jquery google-api

jquery - origins - ¿Por qué ''gapi.client'' de Google Plus Api no está definido?



google plus share button (1)

Intento utilizar google + api, y tuve que modificar el ejemplo de autenticación de muestra para que se ajuste a mis necesidades de esta manera:

<script src="https://apis.google.com/js/client.js"></script>

En lugar de esto:

<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>

Básicamente eliminó el parámetro de carga y puso toda la funcionalidad en dom listo.

Este es el problema que simplemente no entiendo:

Código:

console.log(gapi); console.log(gapi.client); $.each(gapi, function(){ console.log(this); }); gapi.client.setApiKey(this.options.apiKey);

Salida:

Entonces mi pregunta básicamente es:

¿Por qué en console.log (gapi) muestra que tiene subobjetos como cliente y autenticación, y en console.log (gapi.client) dice indefinido?


Debe utilizar el parámetro de devolución de llamada? Onload, se llama cuando el cliente JS ha terminado de cargarse de forma asíncrona. Al ejecutar Dom Ready, está intentando acceder a gapi.client antes de que se haya definido. Lo que sucede es que el script /js/client.js define gapi y algunas funciones auxiliares, pero gapi.client y gapi.auth no se definen hasta que el cliente JS haya terminado de cargarse. Cuando inspecciona el objeto registrado por console.log (gapi), el cliente ha terminado de cargarse, por lo que puede ver gapi.client y gapi.auth definidos.