在google drive sdk中获取用户信息

时间:2013-11-10 13:07:35

标签: email oauth permissions google-drive-api scopes

我正在使用这三个范围:

            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

我错过了什么?

3 个答案:

答案 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"

要添加多个范围,请在范围之间添加空格。