如何通过Google OAuth获取用户性别与生日信息
获取Google账号性别与生日信息的正确姿势
嘿,我看你已经在OAuth Playground里做了授权操作,不过这里有几个关键点可以帮你顺利拿到目标信息:
权限范围精简优化
你选的plus.login和plus.me权限其实属于已弃用的Google+ API,现在完全不需要啦。只需要保留这两个核心权限就足够获取性别和生日:
https://www.googleapis.com/auth/userinfo.profile:用于获取用户基本资料(包含性别、生日等字段)https://www.googleapis.com/auth/userinfo.email:如果不需要邮箱信息,这个可以直接去掉
正确的API请求端点
拿到访问令牌后,你可以用下面两个常用端点来请求信息:
方式1:OAuth2 UserInfo端点(简洁高效)
直接发起GET请求到这个地址:
https://www.googleapis.com/oauth2/v2/userinfo
请求头里必须带上Authorization: Bearer {你的访问令牌},返回的JSON数据里会包含gender(性别,值为male/female/other)和birthday(生日,格式为MM/DD/YYYY)字段——前提是用户在Google账号里填写了这些信息,并且授权时同意了权限。
方式2:Google People API(更全面的信息)
如果需要更详细的用户数据,推荐用People API,发起GET请求到:
https://people.googleapis.com/v1/people/me?personFields=genders,birthdays
这个端点返回的结构更丰富,生日会包含不同格式的日期(比如原始输入格式、ISO格式),性别也会有明确的类型标识。用这个端点的话,权限用userinfo.profile就完全兼容。
小提示
- 在OAuth Playground里,你可以直接把上面的端点填到「Request URI」输入框,点击「Send the request」就能看到返回结果
- 如果返回的性别/生日字段为空,要么是用户没在Google账号里填这些信息,要么是授权时没给到对应的权限,记得检查一下授权步骤哦
内容的提问来源于stack exchange,提问作者epord
相关产品推荐
相关产品推荐

