2012-10-13 12 views
10

Próbuję użyć google + API i musiałem zmodyfikować przykład próba uwierzytelnienia, aby pasowały do ​​moich potrzeb tak:Dlaczego "gapi.client" z Google Plus Api jest niezdefiniowany?

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

Zamiast tego:

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

Zasadniczo usunięte parametr onload, i umieścił całą funkcjonalność na domowym urządzeniu.

Oto problem, który ja po prostu nie rozumiem:

Kod:

console.log(gapi); 
console.log(gapi.client); 

$.each(gapi, function(){ 

     console.log(this); 

}); 

gapi.client.setApiKey(this.options.apiKey); 

wyjściowa:

enter image description here

Więc moje pytanie jest w zasadzie:

Dlaczego w console.log (gapi) pokazuje, że ma su b-obiekty, takie jak klient i auth, a na console.log (gapi.client) jest napisane niezdefiniowane?

Odpowiedz

10

Należy użyć parametru zwrotnego? Onload, wywoływany, gdy klient JS zakończy ładowanie asynchronicznie. Uruchamiając dom gotowy, próbujesz uzyskać dostęp do pliku gapi.client, zanim zostanie on zdefiniowany. Co się dzieje, to, że skrypt /js/client.js definiuje luki i niektóre funkcje pomocnicze, ale lukii.client i gapi.auth nie są zdefiniowane, dopóki klient JS nie zakończy ładowania. Podczas sprawdzania obiektu logowanego przez konsolę.log (gapi), klient zakończył ładowanie, więc widzisz zdefiniowane gapi.client i gapi.auth.

Powiązane problemy