我有点困惑。使用 Google+ Android SDK 将用户登录到我的应用程序并获取他的个人资料详细信息。https://developers.google.com/+/api/oauth上的手册清楚地说明了
您不应请求或
userinfo.profile
与plus.me
范围结合使用,plus.login
因为它们是隐式包含的,并且会为您的用户创建一个令人困惑的权限对话框。
所以我只要求plus.login
范围(和userinfo.email
范围,但这不相关)。尝试通过调用调试令牌
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN
这是我回来的:
{
"issued_to": "534771845378-3668o318pburvuhrukgj7pao3ir****.apps.googleusercontent.com",
"audience": "534771845378-3668o318pburvuhrukgj7pao****.apps.googleusercontent.com",
"user_id": "106027222137637*****",
"scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email",
"expires_in": 2279,
"email": "****@****.com",
"verified_email": true,
"access_type": "online"
}
这是我试图通过调用来获取用户配置文件的响应
https://www.googleapis.com/oauth2/v2/userinfo?access_token=ACCESS_TOKEN
{
"id": "10602722213763777****",
"email": "****@****.com",
"verified_email": true,
"hd": "****.com"
}
很明显,您可以看到此响应中没有任何用户配置文件详细信息。
当我添加userinfo.profile
范围时,就像谷歌说你不应该那样,我得到了用户个人资料详细信息的良好响应。
谷歌发生了什么?