前言
本文主要简述Google登录以及Android接入时遇到的一些问题,并且给出对应的解决办法。在接入Google 登录之前,官方给出了一个Demo,你可以按照它给的Demo,Demo里面提供了使用流程,包括配置Google API项目,获取Sha-1证书,以及获取client-Id等,这边就不做详细介绍。Demo链接:Google SignIn 官方 Demo
先决条件
获取当前项目的SHA-1
在 console.developers.google 上创建好项目
在 console.firebase.google 上创建好项目
准备一部支付Google 服务的手机(Google 服务三件套)
注:Developers和Firebase上必须是同一个账号
流程图
引入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 的配置错误。
Google 官方文档意思呢,就是配置错误,没了,就这样???
配置API项目
- 从官方文档进入配置API和自己单独进入配置API,基本都差不多。个人推荐从官方文档页面进入配置,接下来,就讲解一下Google SignIn 配置API项目
- 从Google SignIn 官方文档 内找到“configure a Project”
2.选择一个已有的项目(没创建过,可以通过+进行创建)
3.Google SignIn官方文档 提示需要Web应用,但我们这边选择Android,至于为什么呢?我们接着往下走。
4.填写一下对应的包名以及SHA-1,不知道SHA-1是在哪里获取,弹框上也有获取SHA-1证书的方法(keytool -keystore.....)
注:Google Play Console 如果是已经打开应用签名(毕竟坑的一个东西,开了就没办法关闭了),SHA-1先填写“应用签名密钥证书”里面的SHA-1,然后再填写一遍“上传密钥证书”,必须2个都要配置!!必须2个都要配置配置!!必须2个都要都要配置!!(重要事情说3遍)
5.配置完成后,它会自动生成Client Id,把Client Id保存下来,就是以后Google SignIn需要的IdToken。这时候我们打开console.developers.google 会发现,里面已经会生成好Web应用等多个Id,Web应用的Id和刚刚保存Client Id是同一个Id。
注:使用上传证书和应用签名,配置成功后,Client Id不变!
注: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 相同的账号的
2.找到Android,点击旁边的齿轮,进入设置页面
3.将Google Play Console 内的应用签名下的“应用签名密钥证书”和“上传密钥证书”的SHA-1添加到里面,最后重新下载google-service.json,更新项目里的json。
总结
到这一步,就已经配置完成了,最后将console.developers.google 里的Web client (Auto-created for Google Sign-in)的Id(即IdToken)保存下来。这边需要测试应用的,需要将应用上传到内部测试才可以测试。