1

Google api を呼び出す Chrome 拡張機能のバックグラウンド ページで JavaScript コードを実行しています。以下のコードは、基本的に oAuth2 トークンを要求します。

function init(){
gapi.client.setApiKey(apiKey);
console.log("Initializing...");
gapi.auth.init(function() { setTimeout(authenticate,100)});
}
function authenticate(){
console.log("Initialized. Now AUthenticating");
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false},api);    
}

認証ウィンドウは期待どおりに開きますが、ユーザーがログインしてアプリを許可すると、ページがフリーズするだけです。コールバック (api()) は行われず、トークンを受け取りません。バックグラウンドページから呼び出しており、認証ウィンドウに応答を返す方法がないためですか?

はいの場合、回避策/解決策は何ですか?

もしそうなら、どうすればこれを修正できますか?

4

1 に答える 1

0

Boris Smus の OAuth 2.0 Library for Chrome Extensionを使用できます。私の拡張機能ではうまく機能します。

Chrome 拡張機能で OAuth2.0 を使用できない理由:

Chrome 拡張機能は chrome-extension:// URL に存在するため、OAuth 2.0 サーバー側またはクライアント側フローを直接使用することはできません。

于 2012-08-14T02:12:04.687 に答える