Вытягивание списка членов группы пользователей в Службах Google
Я конвертирую свое приложение в API-интерфейс каталога и пытаюсь найти способ получить членство в группе пользователей в Google с помощью.NET.
Глядя на страницу API: Google Apps API
Я вижу "Получить участника группы", для которого требуется и группа, и ключ участника. Я не могу найти этот вызов в сервисе. Групповые функции. Я тоже посмотрел на сервис. Членство функционирует, и я ничего не нахожу.
Где 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.
4 ответа
Вы можете использовать API групп -> список, где можно указать userKey. Возвращает все группы, в которых пользователь является memberOf. Вот ссылка - https://developers.google.com/admin-sdk/directory/v1/reference/groups/list
def retrieving_groups():
response_group = service.groups().list(customer='my_customer').execute()
for group in response_group['groups']:
print(group['email'])
здесь функция, она вернет все адреса электронной почты всех групп
Немного опоздал на вечеринку здесь, но мог бы опубликовать это на тот случай, если кому-то это понадобится.. Это то, что я нашел довольно расстраивающим.
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, и я просто перебираю его соответственно.
РЕДАКТИРОВАТЬ:
Также посмотрите здесь - я думаю, что вы можете отказаться от использования свойства "domain" и использовать вместо него свойство "Customer".. (если я правильно понимаю требования).
IList<Group> g = groupsResourceRequest.Execute().GroupsValue;
this.GroupList.DataSource = g.Select(x => x.Email).ToList();
Но даже вышеописанным способом этот метод имеет верхний предел 200. Пожалуйста, скажите мне, как кто-то может получить более 200.