2

我正在使用这三个范围:

            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

我错过了什么?

4

3 回答 3

0

如果您正在查找授权用户的电子邮件,请尝试使用 tokeninfo 端点(出于安全目的,您无论如何都应该调用它)。请参阅https://developers.google.com/accounts/docs/OAuth2Login#obtaininguserprofileinformation

于 2013-11-11T13:42:17.827 回答
0

我可能是错的,但只是通过您引用范围的方式,例如scopes[0], scopes[1], scopes[2]. 看起来您将它们存储在一个数组中。

当我使用客户端(javascript)oauth 检索用户信息时,它们只是以空格分隔。

于 2013-11-12T00:05:39.990 回答
0
"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"

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

于 2016-11-23T05:33:43.557 回答