Google+ api不会返回包含登录请求的个人资料名称

时间:2013-04-17 17:19:26

标签: google-api google-plus

Google文档HERE清楚地说明了

  

您不应该同时请求userinfo.profile或plus.me与[https://www.googleapis.com/auth/plus.login]范围一起使用,因为它们是隐式包含的,会为您的用户创建一个令人困惑的权限对话框

......如果我不使用

https://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/userinfo.profile以及https://www.googleapis.com/auth/plus.login api将不会返回用户的电子邮件地址或名称。

如果我不应该userinfo范围以及plus.login范围,我该如何获取用户的姓名和电子邮件?

5 个答案:

答案 0 :(得分:3)

您需要userinfo.email来获取电子邮件地址,但您应该能够请求也请求userinfo.profileplus.login应该允许您访问“GET / plus / v1 / people / {userid}”调用,该调用应返回以下字段/对象(至少):

  • name - 包含分解为字段的名称的对象
  • 的displayName
  • 昵称

答案 1 :(得分:2)

我也很难获得个人资料和电子邮件地址。最后我发现我可以使用这些范围来获取所有内容:

'https://www.googleapis.com/auth/plus.login','email','个人资料'

答案 2 :(得分:1)

似乎谷歌的文档有点模糊。他们说范围'plus.login'包含displayName和email,但是,在使用不同的Google帐户(普通Gmail,Google +,Google Apps)运行多项测试后,这似乎是错误的。

如果用户没有Google+个人资料,'plus.login'将不包含displayName。这似乎也适用于Google Apps帐户。因此,要涵盖所有可能的Google帐户状态,安全的选择是请求:

他们说最后2个已被弃用,但是,如果您不使用它们,某些帐户将不会返回所有基本信息。我不知道这是否与谷歌帐户的“年龄”有关,或者只是谷歌的一个错误。

答案 3 :(得分:0)

以这种方式对我起作用

范围= https://www.googleapis.com/auth/userinfo.profile电子邮件

userinfo.profile 电子邮件之间有空格

答案 4 :(得分:-1)

我使用以下范围参数实现了多范围。

  

scope = https://www.googleapis.com/auth/userinfo.email+profile