5

我正在开发一个 Chrome 扩展程序,它是 Github.com 上的一个分叉开源程序。该扩展需要 Google Drive API,它需要 OAuth 2.0 客户端 ID。但是,在创建客户端 ID 期间,它要求我提供重定向 URI,但我没有任何重定向域。这是否意味着我无法使用 Google Drive API 或有解决方法?

谢谢!

4

3 回答 3

2

您可以使用:http://localhost应该没问题。

最重要的是获取您的指纹,然后是 API 密钥。

于 2013-02-25T22:15:11.573 回答
2

是的,您可以使用 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 {}
    }

但是要使用它,您必须登录,否则它不会检测到授权。

于 2013-03-01T11:39:51.350 回答
1

您可以注册一个特殊的 URI:

https://<extension-id>.chromiumapp.org/<anything-here>

浏览器会捕获重定向并触发您的代码,而不是真正转到 URL。

请在此处查看更多详细信息:

https://developer.chrome.com/apps/app_identity#register_provider

请注意,在这种情况下,您的扩展 ID 必须是固定的。

于 2015-08-15T08:42:06.603 回答