为什么 Google+ API 第一次不返回电子邮件地址?

问题描述 投票:0回答:1

使用 Sign In with Google+ API(通过 .NET)时,我获取访问令牌,然后使用以下方式获取用户信息:

https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=XXX

这会返回大量用户信息,但不会用户的电子邮件地址。

如果我重新尝试登录(使用完全相同的代码),那么在第二次尝试时,返回的用户信息包含“电子邮件”字段!任何后续登录尝试都会按预期返回电子邮件地址。

请注意,使用范围为:

https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email

有人知道为什么第一次没有返回电子邮件地址吗?

这是一个问题,因为我在第一次尝试时需要电子邮件地址才能创建用户帐户。

.net google-plus
1个回答
2
投票

这看起来确实很奇怪,尽管它可能与已弃用(并计划在 9 月份删除)的 userinfo 方法有关,以支持使用 plus 端点。由于您已经在使用 plus.login 范围,因此您可以切换为使用 plus.people.get 端点,并且应该更改为使用 email 范围来请求电子邮件信息。

有关这些更改的更多信息,请参阅 https://developers.google.com/+/api/auth-migration

© www.soinside.com 2019 - 2024. All rights reserved.