Google文档HERE清楚地说明了
您不应该同时请求userinfo.profile或plus.me与[https://www.googleapis.com/auth/plus.login]范围一起使用,因为它们是隐式包含的,会为您的用户创建一个令人困惑的权限对话框
......如果我不使用
https://www.googleapis.com/auth/userinfo.email
和https://www.googleapis.com/auth/userinfo.profile
以及https://www.googleapis.com/auth/plus.login
api将不会返回用户的电子邮件地址或名称。
如果我不应该userinfo
范围以及plus.login
范围,我该如何获取用户的姓名和电子邮件?
答案 0 :(得分:3)
您需要userinfo.email
来获取电子邮件地址,但您应该能够请求而也请求userinfo.profile
。 plus.login
应该允许您访问“GET / plus / v1 / people / {userid}”调用,该调用应返回以下字段/对象(至少):
答案 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)
答案 4 :(得分:-1)
我使用以下范围参数实现了多范围。
scope = https://www.googleapis.com/auth/userinfo.email+profile