我正在将我的应用程序转换为目录API,并试图找到一种方法来使用.NET在google中提取用户的组成员身份。
查看API页面:Google Apps API
我看到"检索群组成员"这需要一个小组和一个成员的密钥。我无法在service.Groups函数中找到此调用。我也查看了服务。会员功能,我没有找到任何东西。
提取单个用户的群组成员资格的API在哪里?
更新
这是我试图使用的电话:
try
{
GroupsResource.ListRequest groups = service.Groups.List();
groups.Domain = "appDomain.com";
groups.Customer = strGoogleCusID;
groups.MaxResults = 100;
groups.PageToken = "";
groups.UserKey = "User@appDomain.com";
var list = groups.Execute();
}
catch (Google.GoogleApiException ex)
{
}
但它返回了错误的请求。我可以使用此函数返回域中的所有组,但如果我指定UserKey,则会收到400 Bad Request。
答案 0 :(得分:2)
您可以使用群组 - > list API,其中可以指定userKey。它返回用户是memberOf的所有组。这是链接 - https://developers.google.com/admin-sdk/directory/v1/reference/groups/list
答案 1 :(得分:0)
这里的派对有点晚了,但可能会发布,以防有人需要它。这是我发现非常令人沮丧的事情。
Google.Apis.Admin.Directory.directory_v1.GroupsResource.ListRequest lr = new Google.Apis.Admin.Directory.directory_v1.GroupsResource.ListRequest(dirservice);
lr.UserKey = "USER_EMAIL_HERE";
foreach (Group gmem in lr.Execute().GroupsValue)
{
Console.Writeline(gmem.Email.ToString() + '\n');
}
lr.Execute()。GroupsValue将返回一个Group对象列表,我只是相应地迭代它。
编辑:
另外看一下here - 我想你可能想省略使用“域”属性并改用“客户”...(如果我理解正确的要求)。
答案 2 :(得分:0)
IList<Group> g = groupsResourceRequest.Execute().GroupsValue;
this.GroupList.DataSource = g.Select(x => x.Email).ToList();
但是,即使按照上述方式,这种方法的上限为200.请告诉我有人可以超过200个。
答案 3 :(得分:0)
def retrieving_groups():
response_group = service.groups().list(customer='my_customer').execute()
for group in response_group['groups']:
print(group['email'])
这里是函数,它将返回所有组的所有电子邮件地址