如何使用Google登录按钮

时间:2017-01-23 02:49:03

标签: javascript google-drive-api

我正在与Google云端硬盘集成。我按照谷歌推荐的路径放置了这样的登录按钮:

<div class="g-signin2" data-onsuccess="onSuccessFunc" data-theme="dark"></div>

这类g-signin2启用了某些回调,但我无法在任何地方找到文档。搜索是没有意义的,因为有一百万个代码示例使用它。有人可以指出文档吗?

我的问题是我需要启用谷歌硬盘访问权限。这是在gapi.init中完成的,但是这个登录按钮正在执行init本身,如果我尝试这样做,它会抱怨已经调用了init。好的,但我需要指定身份验证范围以包含谷歌驱动器。

当我执行程序时,按下按钮提示允许配置文件访问,但不允许驱动。

后来,我调用了gapi.auth.authorize,它在没有提示用户的情况下失败了。我已经看到了g-signin2类与其他参数属性的其他用法,我怀疑它有一个属性,但是我找不到文档。不幸的是,Google教程没有引用有关字段及其含义的文档。

知道如何告诉登录按钮授权范围呈现给用户吗?

$scope.callAuthAuthorize = function() {
    var authparam = {
        'client_id': CLIENT_ID,
        'scope': 'https://www.googleapis.com/auth/drive',
        'immediate': true
    };
    console.log("Now Requesting: ", authparam);
    gapi.auth.authorize(authparam, $scope.handleAuthResult);
}

1 个答案:

答案 0 :(得分:0)

尝试使用适用于Google Drive API的JavaScript Quickstart tutorial。 这就是我用来创建从Google云端硬盘读取文件的应用程序。

按照“步骤1:启用云端硬盘API”中的步骤启用Google云端帐户中的凭据。

首先使用authorize致电immediate: true,然后在出错时切换到immediate: false

gapi.auth.authorize(authparam, (auth_result)=> {
    if (auth_result && !auth_result.error)
        $scope.handleAuthResult(auth_result)
    else {
        authparam.immediate = false;
        gapi.auth.authorize(authparam, (auth_result)=> {
            if (auth_result && !auth_result.error)
                $scope.handleAuthResult(auth_result)
            else
                console.error(auth_result)
        })
    }
})