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

时间:2014-05-01 09:30:49

标签: .net api google-plus

使用使用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

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

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

由于

1 个答案:

答案 0 :(得分:2)

这看起来很奇怪,虽然它可能与不推荐使用的 userinfo 方法有关(并计划在9月删除),转而使用 plus 端点。由于您已经在使用 plus.login 范围,因此您可以切换到使用plus.people.get端点,并应更改为使用电子邮件范围来请求电子邮件信息。

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