开发不带重定向URI的Chrome扩展程序

cha*_*ang 5 javascript google-chrome-extension oauth-2.0 google-drive-api google-oauth

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

谢谢!

Jaf*_*ain 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);
}
Run Code Online (Sandbox Code Playgroud)

var checkAuthAuto = function () {
    gapi.auth.authorize({
        client_id: clientId,
        scope: 'scope here',
        immediate: true
    }, handleAuthResultAuto);
}
Run Code Online (Sandbox Code Playgroud)

如果一切正常:

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 {}
    }
Run Code Online (Sandbox Code Playgroud)

但要使用此功能,您必须登录,否则它将无法检测授权。