2015-01-18 3 views
2

Я конвертирую свое приложение в API каталогов и пытаюсь найти способ привлечь членство в группе пользователей в Google с помощью .NET.Вызов списка членов группы пользователей в Google Apps

Глядя на странице API: Google Apps API

Я вижу «Получить член Церкви Группы», которая требует как группы, и ключа члена. Я не могу найти этот вызов в функции service.Groups. Я также посмотрел на службу. Функции членов и я ничего не нахожу.

Где API, который вытаскивает членство в одной группе пользователей?

Update:

Это вызов я пытаюсь использовать:

 try 
     { 
      GroupsResource.ListRequest groups = service.Groups.List(); 
      groups.Domain = "appDomain.com"; 
      groups.Customer = strGoogleCusID; 
      groups.MaxResults = 100; 
      groups.PageToken = ""; 
      groups.UserKey = "[email protected]"; 
      var list = groups.Execute(); 
     } 
     catch (Google.GoogleApiException ex) 
     { 
     } 

Но он возвращает плохой запрос. Я могу использовать эту функцию для возврата всех групп в домене, но если я укажу UserKey, я получаю 400 Bad Request.

+0

Вы используете эту клиентскую библиотеку? https://www.nuget.org/packages/Google.Apis.Admin.Directory.directory_v1/ – peleyal

+0

Да, но я не нахожу вызов API, чтобы вытаскивать группы пользователей. Я могу сделать всех членов группы, но не всех групп для пользователя. – DaBlue

+0

Это похоже на то, что вам нужно: https://developers.google.com/resources/api-libraries/documentation/admin/directory_v1/csharp/latest/classGoogle_1_1Apis_1_1Admin_1_1Directory_1_1directory__v1_1_1MembersResource.html#abe791cc40b1793d758d8ec7209189985. Возможно, это service.Members.Get (* group_key *, * member_key *). ExecuteAsync()? Если да, дайте мне знать, и я изменю этот комментарий, чтобы быть ответом. – peleyal

ответ

2

Вы можете использовать API групп -> list, где может быть указан userKey. Он возвращает все группы, в которых пользователь является членом. Вот ссылка - https://developers.google.com/admin-sdk/directory/v1/reference/groups/list

+0

Похоже, что он может иметь правильный вызов, но API .net не пытается отобразить список групп; Я получаю 400 Bad Request. См. Код внизу моего обновленного вопроса. – DaBlue

+1

Ок, кажется, в вызове есть ошибка. Если вы вызываете эту функцию с идентификатором клиента, она терпит неудачу (она должна быть вызвана в соответствии с указанной вами ссылкой API). Но если я использую домен, я могу получить группы. Проблема в том, что я должен использовать идентификатор клиента, моя программа делает псевдонимы домена ... Любые идеи? – DaBlue

+0

@DaBlue, ты справился с этим? Если я предоставляю как идентификатор клиента, так и userKey, я получаю ошибку 400, если я предоставляю только тот или иной, то он работает. – John

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 возвращает список объектов группы, и я просто итерацию через него соответственно.

EDIT:

Также смотрите here - Я думаю, вы можете опустить, используя свойство «домен» и использовать «Клиент» один вместо .. (если я понимаю требования правильно).

0
IList<Group> g = groupsResourceRequest.Execute().GroupsValue; 

this.GroupList.DataSource = g.Select(x => x.Email).ToList(); 

Но, даже в приведенном выше способом, этот метод имеет верхний предел 200. Скажите, пожалуйста, как кто-то может получить более 200.