我正在使用这三个范围:
scopes[0] = "https://www.googleapis.com/auth/drive";
scopes[1] = "https://www.googleapis.com/auth/userinfo.email";
scopes[2] = "https://www.googleapis.com/auth/userinfo.profile";
授权他们,然后根据以下内容尝试获取用户的电子邮件地址:
https://developers.google.com/drive/v2/reference/permissions/list
通过做:
PermissionList permissions = _service.Permissions.List("root").Fetch();
IList<Permission> a = permissions.Items;
我没有看到emailAddress
当我在“试一试”中包含相同的范围(甚至只有前两个)时节,
我得到一个结果,包括emailAddress
我错过了什么?
答案 0 :(得分:0)
如果您正在寻找授权用户的电子邮件,请尝试使用tokeninfo端点(出于安全目的,您应该为此进行呼叫)。见https://developers.google.com/accounts/docs/OAuth2Login#obtaininguserprofileinformation
答案 1 :(得分:0)
我可能错了,但只是通过你引用范围的方式,例如scopes[0], scopes[1], scopes[2]
。看起来您将它们存储在一个数组中。
当我使用客户端(javascript)oauth检索用户信息时,它们只是以空格分隔。
答案 2 :(得分:0)
"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
要添加多个范围,请在范围之间添加空格。