私はGSuiteを使用しており、Google Auth APIを使用するために非常にシンプルなWebアプリをコーディングしていますが、例外「idpiframe_initialization_failed」が発生します。
これで、googleサンプルに示されているとおりの正確なHTMLが得られました。 https://developers.google.com/api-client-library/javascript/samples/samples
1) Google Developer Console でプロジェクトを作成しました
2)OAUTH認証画面をセットアップします
3)クライアントIDを作成し、制限とリダイレクトURLを作成しました
4)API KEYも作成しました
5)最後に、People APIを有効にしました。discoveryDocsパラメーターの設定時にディスカバリーサービスが失敗したためです。
これらのすべてのステップで、gapi.client.initを呼び出すと、例外が発生しますクロムのみ、理由はわかりません。
APIを初期化するコードは次のとおりです。
gapi.client.init({
apiKey: 'MY_API_KEY',
discoveryDocs: ["https://people.googleapis.com/$discovery/rest?version=v1"],
clientId: 'MY_CLIENT_ID.apps.googleusercontent.com',
scope: 'profile'
}).then(function (response) {
// Listen for sign-in state changes.
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// Handle the initial sign-in state.
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
},function(reason){
console.log('onerror');
console.log(reason);
// Listen for sign-in state changes.
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// Handle the initial sign-in state.
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
コードはエラーブロックを実行しています。メッセージは次のとおりです。
details: "Failed to read the 'localStorage' property from 'Window': Access is denied for this document."
error:"idpiframe_initialization_failed"
このエラーが発生する理由は何ですか?
ありがとう!
問題は、GoogleのAPIコンソールと、資格情報の作成方法に関するものです。次のURLからアクセスした場合にのみ機能するようです https://developers.google.com/identity/sign-in/web/sign-in#before_you_begin できるリンクがありますアプリとOAuth資格情報を作成します。コンソールに移動してその画面から作成すると、動作しないようです。再試行して再作成し、新しいアプリでテストした後Authorized Javascript Originsに追加したURLが常に追加されるとは限らないことがわかりました。
私の場合、GoogleがOriginを考慮するまで少し待つ必要がありました。どのくらい時間がかかったのか正確にはわかりません。 30分待った。それから私は眠りについたが、翌朝それは働いていた。
編集:Ooops私はhttp://
およびhttps://
。それが実際の問題でした。
私は同じ問題を抱えていて、3日間検索しました: "popup_closed_by_user"を解決しますconsole.googleに移動しますAPI管理に移動します:Credentials:資格情報を変更します:
許可されたJavascript Origin(http://localhost:port
);許可されたリダイレクトURI(http://localhost:port/auth/google/callback
);
例:||許可されたJavascript Origin(http://localhost:4200
);許可されたリダイレクトURI(http://localhost:4200/auth/google/callback
)