2013-04-17 39 views
1

在谷歌文档HERE恢复配置文件名称清楚地说,Google+的API不与登录请求

你不应该要求在组合userinfo.profile或plus.me与[HTTPS://www.googleapis。 com/auth/plus.login]作用域,因为它们隐式包含在内,并会为您的用户创建令人困惑的权限对话框。

...但如果我不使用沿着

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

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

回答

3

您需要userinfo.email才能获取电子邮件地址,但您应该能够请求而不需要也请求userinfo.profileplus.login应该给你访问到“GET /加/ V1 /人/ {用户ID}”调用,它应该返回以下字段/对象(至少):

  • 名称 - 包含名称的对象分解成田
  • 显示名
  • 昵称
+0

所以我应该提出一个单独的请求来获取个人资料信息? – jwerre

+2

通过身份验证后,可以向/ plus/v1/people/{userid}发出单独请求 –

+0

通常,它有助于在JavaScript中的登录回调函数中调用people.get。 – Joanna

1

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

如果用户没有Google+个人资料,那么'plus.login'将不包含displayName。这似乎也发生在Google Apps帐户上。所以,以涵盖所有可能的谷歌帐户状态,安全的办法就是请求:

他们说,在过去的2已被弃用但是,如果您不使用它们,某些帐户将不会返回所有基本信息。我不知道这是与Google帐户的“年龄”有关还是仅仅是Google的一个漏洞。