Как включить DerivedMembership в вызов member.get() с помощью Google Directory API?

В настоящее время я работаю над программой управления персоналом на Python, которая может выполнять определенные задачи, связанные с управлением пользователями в Google Workspace. Я пытаюсь автоматизировать процесс добавления и удаления пользователей для групп Google с помощью API каталога Google. Чтобы добавить участника в группу, я должен иметь объект участника в теле запроса, как показано здесь: https://developers.google.com/admin-sdk/directory/reference/rest/v1/members/insert, но я не хочу иметь вручную создать эти объекты-члены. Моя мысль состояла в том, чтобы использовать методmembers.get для поиска пользователя в группе, содержащей каждого члена организации, и возвращать их конкретный объект члена.

Однако полная настройка групповой группы осуществляется с помощью утилиты «Все пользователи в организации» (предоставляемой Google Workspace) в качестве члена группы. Это позволяет членам группы автоматически колебаться, поэтому я не планирую это менять.

Немного изучив, я нашел параметр includeDerivedMembership для методаmembers.list, который при значении true позволял API возвращать весь список пользователей в организации. Если он не установлен, он не вернет полный список!

Мой вопрос: кто-нибудь нашел способ включить DerivedMembership с помощью методаmembers.get. Я попытался прикрепить параметр к запросу API для member.get, но безуспешно.

Я ДЕЙСТВИТЕЛЬНО не хочу проходить через огромный массив объектов-членов, возвращаемых методом member.list, но если нет лучшего способа, я это сделаю: L

Заранее спасибо,

Трэвис В.


person Travis Walter    schedule 07.12.2020    source источник


Ответы (1)


Метод members.get возвращает вам объект ресурса участника с Следующая информация:

{
  "kind": string,
  "email": string,
  "role": string,
  "etag": string,
  "type": string,
  "status": string,
  "delivery_settings": string,
  "id": string
}

Как видите, к сожалению, с помощью этого метода невозможно получить статус DerivedMembership.

В качестве обходного пути вы можете вызвать участников . list дважды: один раз с includeDerivedMembership, установленным в true, и один раз в false. Перекрытие двух массивов результатов позволит вам установить, какие элементы являются прямыми, а какие не производными.

person ziganotschka    schedule 08.12.2020
comment
Спасибо за ответ. Я так понял, просто кажется, что его легко можно поддержать в вызове, поскольку я уверен, что вызов APImembers.get делает что-то похожее на вызов member.list, но вместо предоставления массива членов он просто предоставляет один что соответствует. Я жестко запрограммировал поиск объекта-члена с использованием member.list и некоторого кода python dict, чтобы все это работало! - person Travis Walter; 10.12.2020