2012-10-13 3 views
10

:この代わりのGoogle Plus Apiの 'gapi.client'が定義されていないのはなぜですか?私は、グーグル+のAPIを使用しようとしています、と私はこのような私のニーズに合うようにサンプル真偽例を変更する必要がありました

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

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

は基本的には、オンロードパラメータを削除しましたすべての機能をDOM対応にしました。ここで

は私だけ理解していない問題である:

コード:

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

$.each(gapi, function(){ 

     console.log(this); 

}); 

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

出力:

enter image description here

だから、私の質問は基本的には次のとおりです。

なぜconsole.log(gapi)にsuがあることが示されますかクライアントと認証のようなbオブジェクト、console.log(gapi.client)では定義されていないと言いますか?

答えて

10

?onloadコールバックパラメータを使用する必要があります。このパラメータは、JSクライアントの非同期ロードが完了したときに呼び出されます。 dom readyで実行すると、定義される前にgapi.clientにアクセスしようとしています。 /js/client.jsスクリプトがgapiといくつかのヘルパー関数を定義していますが、gapi.clientとgapi.authはJSクライアントのロードが完了するまで定義されていません。 console.log(gapi)によって記録されたオブジェクトを調べると、クライアントのロードが完了したので、gapi.clientとgapi.authが定義されていることがわかります。