我正在使用我自己的个人 Google 帐户玩 Google 的 OAuth 2.0 Playground,但我似乎无法使用 Playground 恢复我的 Gmail 地址。
我使用的范围是:
email profile https://www.googleapis.com/auth/plus.login
但是当我调用API时:
https://www.googleapis.com/oauth2/v2/userinfo
我获得有关用户的各种信息,例如姓氏、名字、性别、图片等,但它不会返回用户的电子邮件。
如何检索用户的电子邮件地址?我的范围是否错误或者我调用了错误的 API?我觉得这应该非常简单,但我确实花了几个小时试图解决这个问题,但我找不到一致提供用户电子邮件地址的 API 和范围组合。
更新日期:2018 年 12 月
12 月 20 日,谷歌宣布将于 2019 年 3 月关闭 Google+ API,并于 2019 年 1 月底开始出现间歇性故障。the plus.people.get
端点已弃用并计划终止.
The userinfo
端点已弃用(请参阅说明),并且应提供假设的信息
- 您请求
https://developers.google.com/identity/sign-in/web/devconsole-project
范围和
- 您请求
email
field.
澄清:2019 年 1 月 24 日
Google 记录在案userinfo (v2) 端点已被弃用,但后来将其更改为“已弃用,但仍可用于向后兼容”。
当前文档讨论通过当前支持的获取个人资料和电子邮件信息openid
方法。这包括使用其中指定的“userinfo”端点发现文件,按照 OpenID Connect 的要求。
目前,该网址是https://openidconnect.googleapis.com/v1/userinfo
,但这在过去发生了变化,发现文档位于https://accounts.google.com/.well-known/openid-configuration
是要使用的 URL 的权威来源。
所以,要明确的是:
- 保留旧的用户信息 URL 是为了向后兼容
- 新的用户信息 URL 可在发现文档中找到
无论如何,任何东西的增强版本(如下所述)都是已弃用并计划删除.
原答案
在你正在做什么以及如何尝试做这件事方面存在很多问题。
对于初学者来说,https://www.googleapis.com/oauth2/v2/userinfo
端点已弃用,并计划于 2014 年 9 月删除。它已经开始工作不一致 - 所以不要使用它。
正如@abraham 指出的,您将使用people.get终点在https://www.googleapis.com/plus/v1/people/me
。这应该给你emails包含地址数组的字段。就您而言,可能只有一个具有“帐户”类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)