Android Google SignIn配置问题

前言

本文主要简述Google登录以及Android接入时遇到的一些问题,并且给出对应的解决办法。在接入Google 登录之前,官方给出了一个Demo,你可以按照它给的Demo,Demo里面提供了使用流程,包括配置Google API项目,获取Sha-1证书,以及获取client-Id等,这边就不做详细介绍。Demo链接:Google SignIn 官方 Demo

先决条件

注:Developers和Firebase上必须是同一个账号

流程图

image

引入Google Apk

在项目级下Build.grade中添加

allprojects {
    repositories {
        google()
    }
}

然后,在应用级下 Build.grade中添加

apply plugin: 'com.android.application'
    ...
    dependencies {
        implementation 'com.google.android.gms:play-services-auth:19.0.0'
    }

配置API项目

配置的时候,特别要注意一下你的配置账号必须和你的Google developers的账号是同一个账号,不是同一个账号,即便你后面都接好了,你也会发现Google api会给你报error 10 的配置错误。

image

Google 官方文档意思呢,就是配置错误,没了,就这样???

image.png

配置API项目

  • 从官方文档进入配置API和自己单独进入配置API,基本都差不多。个人推荐从官方文档页面进入配置,接下来,就讲解一下Google SignIn 配置API项目
  1. Google SignIn 官方文档 内找到“configure a Project”
image

2.选择一个已有的项目(没创建过,可以通过+进行创建)

image

3.Google SignIn官方文档 提示需要Web应用,但我们这边选择Android,至于为什么呢?我们接着往下走。

image

4.填写一下对应的包名以及SHA-1,不知道SHA-1是在哪里获取,弹框上也有获取SHA-1证书的方法(keytool -keystore.....)

注:Google Play Console 如果是已经打开应用签名(毕竟坑的一个东西,开了就没办法关闭了),SHA-1先填写“应用签名密钥证书”里面的SHA-1,然后再填写一遍“上传密钥证书”,必须2个都要配置!!必须2个都要配置配置!!必须2个都要都要配置!!(重要事情说3遍)

image

5.配置完成后,它会自动生成Client Id,把Client Id保存下来,就是以后Google SignIn需要的IdToken。这时候我们打开console.developers.google 会发现,里面已经会生成好Web应用等多个Id,Web应用的Id和刚刚保存Client Id是同一个Id。

注:使用上传证书和应用签名,配置成功后,Client Id不变!

image

注:The request failed because one of the field of the resource is invalid:SHA-1或者包名填写错了,也可能是SHA-1有空格,可是将SHA-1最后一个字母删除,手动输入。 若操作失误,将OAuth删除了也会报资源无效的错误,主要把SHA-1最后几个字母手动输入即可。

配置Firebase项目

配置完了,如果集成了Firebase,firebase里面需要再重新配置一下。

注:这一步不配置的,只配置了console.developers.google,运行结果将会报ApiException:10的错误!

1.从下方链接进入,登录同console.devlepoers.google 相同的账号的

image.png

2.找到Android,点击旁边的齿轮,进入设置页面

image

3.将Google Play Console 内的应用签名下的“应用签名密钥证书”和“上传密钥证书”的SHA-1添加到里面,最后重新下载google-service.json,更新项目里的json。

image

总结

到这一步,就已经配置完成了,最后将console.developers.google 里的Web client (Auto-created for Google Sign-in)的Id(即IdToken)保存下来。这边需要测试应用的,需要将应用上传到内部测试才可以测试。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容