ユーザーのログインに Google API (gapi) を使用しています。
私のコードは以下です。Google SDK を非同期的にロードします。ロードしたら、API関数を呼び出す必要がありますgapi.auth.authorize
(function(d: any, s: string, id: string) {
var js: HTMLScriptElement, gjs: Element = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "https://apis.google.com/js/client.js";
gjs.parentNode.insertBefore(js, gjs);
if (js.readyState){ //IE
js.onreadystatechange = function(){
if (js.readyState == "loaded" ||
js.readyState == "complete"){
js.onreadystatechange = null;
gapi.auth.authorize(); //<-- details omitted
}
};
} else { //Others
js.onload = function(){
gapi.auth.authorize(); //<-- details omitted
};
}
}(document, 'script', 'google-jssdk'));
今問題は - エラーが発生する
TypeError: gapi.auth が定義されていません
それは正しく定義されるべきですか?コンソールを見て入力gapi.auth
すると、応答としてオブジェクトが返されました。
したがって、js.onload
イベントが早期に、つまりgapi.auth
準備ができていないときにトリガーされていると思います。
これを修正する方法は?またはより具体的には、gapi の onload イベントを追加する方法は?