Github.com でフォークされたオープンソース プログラムである Chrome 拡張機能を開発しています。拡張機能には、OAuth 2.0 クライアント ID を必要とする Google Drive API が必要です。ただし、クライアント ID の作成中に、リダイレクト URI を提供する必要がありますが、リダイレクト ドメインはありません。これは、Google Drive API を使用できないということですか、それとも回避策はありますか?
ありがとう!
Github.com でフォークされたオープンソース プログラムである Chrome 拡張機能を開発しています。拡張機能には、OAuth 2.0 クライアント ID を必要とする Google Drive API が必要です。ただし、クライアント ID の作成中に、リダイレクト URI を提供する必要がありますが、リダイレクト ドメインはありません。これは、Google Drive API を使用できないということですか、それとも回避策はありますか?
ありがとう!
あなたはただ使うことができます:http://localhost
それはうまくいくはずです。
この最大のことは、指紋を取得してから API キーを取得することです。
はい、Drive API を使用できますが、スコープ、クライアント ID、クライアント シークレットを提供し、js クライアントをロードして API 呼び出しを行うだけで、Google JS クライアントを使用する必要があります。しかし、JavaScript オリジンでは、Chrome 拡張 ID (chrome-extension://abcdefghijklmnopqrstuvwxyx) が必要です。
以下の機能はあなたにとって便利です
// on client load call this function
var handleClientLoadAuto = function () {
gapi.client.setApiKey(apiKey);
window.setTimeout(checkAuthAuto, 1);
}
と
var checkAuthAuto = function () {
gapi.auth.authorize({
client_id: clientId,
scope: 'scope here',
immediate: true
}, handleAuthResultAuto);
}
すべてがOKの場合:
var handleAuthResultAuto = function (authResult) {
if (authResult && !authResult.error) {
//do call to drive api using
gapi.client.load('drive', 'v2', function () {
var request = gapi.client.drive.files.list(params);
request.execute(function (resp) {
if (resp && resp.error) {
//call to error callback function
//handleError(resp);
} else {
//ok response
}
});
}
} else {}
}
ただし、これを使用するにはログインする必要があります。そうしないと、認証が検出されません。
登録できる特別な URI があります。
https://<extension-id>.chromiumapp.org/<anything-here>
ブラウザーは、実際に URL に移動するのではなく、リダイレクトをキャッチしてコードをトリガーします。
詳細はこちらをご覧ください:
https://developer.chrome.com/apps/app_identity#register_provider
この場合、拡張 ID を固定する必要があることに注意してください。