我正在开发一个 Chrome 扩展程序,它是 Github.com 上的一个分叉开源程序。该扩展需要 Google Drive API,它需要 OAuth 2.0 客户端 ID。但是,在创建客户端 ID 期间,它要求我提供重定向 URI,但我没有任何重定向域。这是否意味着我无法使用 Google Drive API 或有解决方法?
谢谢!
我正在开发一个 Chrome 扩展程序,它是 Github.com 上的一个分叉开源程序。该扩展需要 Google Drive API,它需要 OAuth 2.0 客户端 ID。但是,在创建客户端 ID 期间,它要求我提供重定向 URI,但我没有任何重定向域。这是否意味着我无法使用 Google Drive API 或有解决方法?
谢谢!
您可以使用:http://localhost
应该没问题。
最重要的是获取您的指纹,然后是 API 密钥。
是的,您可以使用 Drive API,但您必须使用 Google JS 客户端,只需提供范围、客户端 ID、客户端密码并加载 js 客户端并进行 API 调用。但是在 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);
}
如果一切正常:
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 必须是固定的。