javascript - 开发无重定向 URI 的 Chrome 扩展

标签 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 或者是否有解决方法?

谢谢!

最佳答案

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

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

关于javascript - 开发无重定向 URI 的 Chrome 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15077444/

相关文章:

javascript - 跨源 Chrome 扩展

oauth - 我认为 OAuth 1.0 已经被 OAuth 2.0 弃用是对的吗?

Javascript OOP 在对象内部使用函数

javascript - 如何检查 RichFaces 组件是否丰富 :messages has messages in Javascript?

javascript - 在 Koa 发送响应后运行代码

Javascript检测录音

javascript - Uncaught Error : Invariant Violation: findComponentRoot(. .., ...$110) : Unable to find element. 这可能意味着 DOM 意外发生了变化

javascript - 如何检测 Chrome 扩展程序中新标签上没有互联网连接

c# - 如何配置 Azure AD 访问 token 的过期时间(使用 ADAL)?

javascript - Google 一键登录/注册,访问个人数据