Вытягивание списка членов группы пользователей в Службах 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.

Другие вопросы по тегам