安卓集成Google登录并进一步获取性别生日手机号等信息

由于公司做海外产品需接入Google三方登录,并且登录后除获取邮箱,用户名和用户id等基本信息外还要获取用户的性别年龄甚至手机号等信息。后面的需求实现起来就有点坑了,主要原因:Google的文档写得真心乱。看网上很多人踩了很多坑还是没找到很好的方法,于是把自己采坑后成功解决的步骤记录下来供大家参考,不谢。

1,打开官网文档,https://developers.google.com/identity/sign-in/android/start

在这里插入图片描述
点击按钮配置一个项目,选择create a new project创建新项目,输入项目名称。
在这里插入图片描述

配置项目,选择Android平台,将包名和SHA-1码填入。

注意,如果你不想每次调试都打正式签名包,你应该首先配一个debug签名的SHA-1进去,点击下图中的learn more链接可以找到获取debug签名SHA-1的方法。我在mac下获取的终端命令是:keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

在这里插入图片描述
创建成功后按照文档一步一步写代码集成就可以啦。可以下载Google官方的实例代码或者文末我的示例工程。这个主要的坑就是这个项目配置,包名和对应的SHA-1码一定要填对,而且如果是直接部署(run)到手机用的是debug的签名文件,就一定要配debug签名文件的SHA-1码,否则会返回错误码10。同理正式打包后测试也要配正式签名文件的SHA-1码。

接下来就是进一步获取用户的性别年龄甚至手机号等信息了。

代码在文末的demo里,这里就不写了。主要是需要用到Google的people api。需加上以下依赖库。
在这里插入图片描述
这里需注意:
1.因为用到了people api,所以需要在Google后台的配置刚才这个项目的people api为启用状态。否则报错如下:“People API has not been used in project 788056243672 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/people.googleapis.com/overview?project=788056243672 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.”,
如果报错点击这个地址可直接进入启用people api界面。或则直接到后台找到people api启用。
2。 一定要写明要请求的用户信息的字段,即通知setPersonFields(“names,emailAddresses,phoneNumbers,genders,birthdays”)方法,字段以逗号分隔。不写的话报错如下:personFields mask is required. Please specify one or more valid paths. Valid paths are documented at https://developers.google.com/people/api/rest/v1/people/get,点击这个地址可以看到有哪些用户信息字段可申请。
在这里插入图片描述

项目下载:https://download.csdn.net/download/hongenit/11103754

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值