首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Google登录

Android Google登录
EN

Stack Overflow用户
提问于 2019-03-21 15:55:50
回答 1查看 455关注 0票数 0

我需要启用对Google Drive的服务器端访问。在这种情况下,一个人正在使用他的Android设备。据我所知,步骤如下: 1.创建GoogleSignInOptions 2.使用GoogleSignInOptions Create GoogleSignInAccount 3.从GoogleSignInAccount获取authCode 4.用authCode交换访问/刷新/ID令牌

我被困在第3步。我遵循了描述良好的教程,但没有任何成功- https://developers.google.com/identity/sign-in/android/offline-accesshttps://developers.google.com/identity/sign-in/android/sign-in#configure_google_sign-in_and_the_googleapiclient_object

以下是初始化登录过程的代码:

代码语言:javascript
复制
final GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(new Scope(Scopes.DRIVE_APPFOLDER))
                .requestServerAuthCode(backend_server_web_client_id)
                .build();

GoogleSignInClient google_api_client = GoogleSignIn.getClient(context, gso);

activity.startActivityForResult(google_api_client.getSignInIntent(), RC_SIGN_IN);

下面是处理登录结果的代码:

代码语言:javascript
复制
// data is the intent from onActivityResult callback
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);

if (task.isComplete())
    handle(task);
else {
    task.addOnCompleteListener(new OnCompleteListener<GoogleSignInAccount>() {
            @Override
            public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
                handle(task);
            }}
    });
}

最后是句柄函数,这里是问题所在:

代码语言:javascript
复制
public void handle(Task<GoogleSignInAccount> task) {
    try {
        GoogleSignInAccount account = task.getResult(ApiException.class);
    } catch (ApiException e) {
    //I'm always getting this exception with status code 10, which means DEVELOPER ERROR. Keys in Google API console are checked multiple times.
    }
}

在handle函数中,我总是得到一个异常,状态码为10,这意味着DEVELOPER_ERROR。Google API控制台中的密钥会被多次检查。代码被重写了几次...我真的不知道会出什么问题。

谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-28 22:19:23

您可能忘记了配置Google API控制台。按照说明操作:https://developers.google.com/identity/sign-in/android/start-integrating

您可以看到使用相应的包名和签名证书的SHA1为Android创建OAuth客户端ID。您不必在代码中的任何位置输入此密钥。它只需要存在于Google API控制台中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55275901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档