Управление учетными записями пользователей

API каталога предоставляет программные методы для создания, обновления и удаления пользователей. Вы также можете получить информацию об отдельных пользователях или списки пользователей, соответствующих заданным критериям. Ниже приведены примеры некоторых основных операций с пользователями.

Создать учетную запись пользователя

Вы можете добавить учетную запись пользователя в любой из доменов вашей учетной записи Google Workspace. Перед добавлением учетной записи пользователя подтвердите право собственности на домен .

Если вы обновили свою личную учетную запись Gmail до корпоративной учетной записи электронной почты с собственным доменным именем, вы не сможете создавать новые учетные записи пользователей, пока не разблокируете дополнительные параметры Google Workspace. Подробнее см. раздел «Корпоративные учетные записи электронной почты G Suite, обновленные до G Suite Basic» .

Для создания учетной записи пользователя с использованием одного из ваших доменов используйте следующий POST запрос и включите авторизацию, описанную в разделе «Подробнее об аутентификации и авторизации» . Доступные области действия для API каталога можно посмотреть в списке областей действия OAuth 2.0 . Свойства строки запроса см. в методе users.insert() .

POST https://admin.googleapis.com/admin/directory/v1/users

Для выполнения всех запросов на создание требуется предоставить необходимую информацию. Если вы используете клиентские библиотеки, они преобразуют объекты данных из выбранного вами языка в объекты в формате JSON.

JSON-запрос

Приведенный ниже JSON-код демонстрирует пример запроса на создание пользователя. Полный список свойств запроса и ответа см. в справочнике API .

{
"primaryEmail": "liz@example.com",
"name": {
 "givenName": "Elizabeth",
 "familyName": "Smith"
},
"suspended": false,
"password": "new user password",
"hashFunction": "SHA-1",
"changePasswordAtNextLogin": false,
"ipWhitelisted": false,
"ims": [
 {
  "type": "work",
  "protocol": "gtalk",
  "im": "liz_im@talk.example.com",
  "primary": true
 }
],
"emails": [
 {
  "address": "liz@example.com",
  "type": "home",
  "customType": "",
  "primary": true
 }
],
"addresses": [
 {
  "type": "work",
  "customType": "",
  "streetAddress": "1600 Amphitheatre Parkway",
  "locality": "Mountain View",
  "region": "CA",
  "postalCode": "94043"
 }
],
"externalIds": [
 {
  "value": "12345",
  "type": "custom",
  "customType": "employee"
 }
],
"organizations": [
 {
  "name": "Google Inc.",
  "title": "SWE",
  "primary": true,
  "type": "work",
  "description": "Software engineer"
 }
],
"phones": [
 {
  "value": "+1 nnn nnn nnnn",
  "type": "work"
 }
],
"orgUnitPath": "/corp/engineering",
"includeInGlobalAddressList": true
}

Если частота запросов на создание слишком высока, вы можете получать HTTP-ответы 503 от API-сервера, указывающие на превышение квоты. В таких случаях используйте алгоритм экспоненциальной задержки для повторной отправки запросов.

При создании нового аккаунта следует обратить внимание на следующие моменты:

  • Если в учетной записи Google были приобретены почтовые лицензии, новой учетной записи пользователя автоматически назначается почтовый ящик. На выполнение и активацию этой процедуры может потребоваться несколько минут.
  • Редактирование поля только для чтения в запросе, например, isAdmin , молча игнорируется API-сервисом.
  • Максимальное количество доменов, разрешенных в одной учетной записи, составляет 600 (1 основной домен + 599 дополнительных доменов).
  • Если при создании учетной записи пользователь не был привязан к конкретному организационному подразделению, учетная запись находится в организационном подразделении верхнего уровня. Организационное подразделение пользователя определяет, к каким сервисам Google Workspace он имеет доступ. Если пользователь переводится в новую организацию, его доступ изменяется. Дополнительную информацию об организационных структурах см. в справочном центре администрирования . Дополнительную информацию о переводе пользователя в другую организацию см. в разделе «Обновление пользователя» .
  • Для создания новых учетных записей пользователей требуется password . Если указана hashFunction , пароль должен представлять собой действительный хеш-ключ. Если она не указана, пароль должен быть в открытом виде и содержать от 8 до 100 символов ASCII. Для получения дополнительной информации см. Справочник по API .
  • Для пользователей с гибким тарифным планом Google Workspace создание пользователей с помощью этого API повлечет за собой финансовые затраты и приведет к списанию средств с вашего клиентского платежного счета. Для получения дополнительной информации см. раздел «Информация о выставлении счетов за API» .
  • В учетную запись Google Workspace можно включить любой из ваших доменов. В учетной записи с несколькими доменами пользователи одного домена могут совместно использовать сервисы с пользователями других доменов учетной записи. Для получения дополнительной информации о пользователях в нескольких доменах см. информацию об API для работы с несколькими доменами .
  • Возможно, возникли конфликтующие учетные записи. Проверьте, есть ли у кого-либо из тех, кого вы планируете добавить, уже учетная запись Google. Затем выполните действия, чтобы избежать конфликтов с этими учетными записями. См. раздел «Поиск и разрешение конфликтующих учетных записей» .
  • Возможно, существуют гостевые учетные записи. Если пользователи приглашают для совместной работы в Google Диск людей, не имеющих учетных записей Google за пределами вашей организации, они получат гостевые учетные записи в формате visitor's_username@your_domain.com. Если вы добавите пользователя с тем же именем пользователя, что и у гостевой учетной записи, эта учетная запись будет преобразована в полноценную учетную запись Google Workspace. Учетная запись сохранит текущие права доступа к файлам Google Диска. См. раздел «Обмен документами с посетителями» .

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ содержит свойства новой учетной записи пользователя.

Обновить учетную запись пользователя

Для обновления учетной записи пользователя используйте следующий PUT запрос и включите авторизацию, описанную в разделе «Авторизованные запросы» . В userKey может выступать основной адрес электронной почты пользователя, уникальный id пользователя или один из псевдонимов электронной почты пользователя.

PUT https://admin.googleapis.com/admin/directory/v1/users/ userKey

И в теле запроса, и в теле ответа содержится экземпляр объекта User . Однако API каталога поддерживает семантику патчей , поэтому вам нужно лишь отправить обновленные поля в запросе.

Пример запроса

В приведенном ниже примере givenName пользователя при создании учетной записи было "Elizabeth", и был указан только рабочий адрес электронной почты.

{
  "name": {
    "givenName": "Elizabeth",
    "familyName": "Smith"
   },
  "emails": [
    {
      "address": "liz@example.com",
      "type": "work",
      "primary": true
    }
  ]
}

Приведённый ниже запрос обновляет givenName с "Elizabeth" на "Liz", а также добавляет домашний адрес электронной почты. Обратите внимание, что оба адреса электронной почты указаны полностью, поскольку поле представляет собой массив.

PUT https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

{
  "name": {
    "givenName": "Liz",
   },
  "emails": [
    {
      "address": "liz@example.com",
      "type": "work",
      "primary": true
    },
    {
      "address": "liz@home.com",
      "type": "home"
    }
  ]
}

В случае успешного ответа возвращается код состояния HTTP 200 и ресурс User с обновленными полями.

При изменении имени учетной записи пользователя следует учитывать следующее:

  • Переименование учетной записи пользователя изменяет основной адрес электронной почты пользователя и домен, используемый при получении информации об этом пользователе. Перед переименованием пользователя рекомендуется выйти из всех сеансов браузера и служб, связанных с этим пользователем.
  • Процесс переименования учетной записи пользователя может занять до 10 минут, прежде чем изменения распространятся на все сервисы.
  • При переименовании пользователя старое имя пользователя сохраняется в качестве псевдонима для обеспечения непрерывной доставки почты в случае настроек пересылки электронных писем и недоступно в качестве нового имени пользователя.
  • В целом, мы также рекомендуем не использовать адрес электронной почты пользователя в качестве ключа для хранения постоянных данных, поскольку адрес электронной почты может меняться.
  • Полный список последствий переименования пользователя в приложениях Google Workspace см. в справочном центре администратора .

Назначьте пользователя администратором.

Чтобы назначить пользователя суперадминистратором, используйте следующий POST запрос и включите авторизацию, описанную в разделе «Авторизация запросов» . В качестве userKey может использоваться основной адрес электронной почты пользователя, уникальный id пользователя или один из псевдонимов электронной почты пользователя. Свойства запроса и ответа см. в Справочнике API . Дополнительную информацию о суперадминистраторе см. в справочном центре администрирования .

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/makeAdmin

JSON-запрос

В этом примере пользователь с userKey liz@example.com стал суперадминистратором:

POST https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/makeAdmin
{
 "status": true
}

В случае успешного ответа возвращается код состояния HTTP 200 .

Управление взаимоотношениями с пользователями

API каталога использует поле relations для определения различных типов отношений между пользователями. В деловой среде это поле обычно используется для отношений «менеджер-сотрудник» и «помощник», но оно поддерживает и многие другие типы. Информация об отношениях отображается на карточке «Связанные люди» пользователя в любом приложении Google Workspace, поддерживающем эту карточку. Примеры отображения карточки см. в разделе «Добавление информации в профиль пользователя в каталоге» .

Создайте взаимосвязь между пользователями.

Вы можете определить связь только в одном направлении, начиная с «владеющего» пользователя, в записи которого содержится поле « relations . type описывает связь другого лица с владельцем. Например, в связи «менеджер-сотрудник» сотрудник является владельцем, и вы добавляете в его учетную запись поле relations с типом manager . Список допустимых типов см. в справочнике по объекту User .

Настройте связь, создав или обновив пользователя-владельца, отправив JSON-запрос с полем relations . В одном запросе можно создать несколько связей.

{
  "relations": [
    {
      "value": "EMAIL_ADDRESS_RELATION_1",
      "type": "manager"
    },
    {
      "value": "EMAIL_ADDRESS_RELATION_2",
      "type": "dotted_line_manager"
    }
  ]
}

Обновить или удалить связь

Обновить поле relations можно только целиком — нельзя обращаться к отдельным людям, указанным в списке, чтобы изменить тип связи или удалить их. В приведенном выше примере, чтобы удалить существующую связь «Менеджер» и сделать менеджера, указанного пунктирной линией, менеджером пользователя-владельца, обновите учетную запись пользователя-владельца, указав все значения поля так, как вам нужно.

{
  "relations": [
    {
      "value": "EMAIL_ADDRESS_RELATION_2",
      "type": "manager"
    }
  ]
}

Чтобы удалить все связи пользователя-владельца, установите для relations значение «пусто»:

{
  "relations": []
}

Получить пользователя

Для получения информации о пользователе используйте следующий GET запрос и включите авторизацию, описанную в разделе «Авторизация запросов» . В userKey может использоваться основной адрес электронной почты пользователя, уникальный id пользователя или один из псевдонимов электронной почты пользователя. Свойства запроса и ответа см. в справочнике API .

GET https://admin.googleapis.com/admin/directory/v1/users/userKey

В этом примере возвращаются свойства учетной записи пользователя, чей основной или дополнительный адрес электронной почты — liz@example.com:

GET https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ возвращает свойства учетной записи пользователя.

{
 "kind": "directory#user",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "name": {
  "givenName": "Liz",
  "familyName": "Smith",
  "fullName": "Liz Smith"
 },
 "isAdmin": true,
 "isDelegatedAdmin": false,
 "lastLoginTime": "2013-02-05T10:30:03.325Z",
 "creationTime": "2010-04-05T17:30:04.325Z",
 "agreedToTerms": true,
 "hashFunction": "SHA-1",
 "suspended": false,
 "changePasswordAtNextLogin": false,
 "ipWhitelisted": false,
 "ims": [
  {
   "type": "work",
   "protocol": "gtalk",
   "im": "lizim@talk.example.com",
   "primary": true
  }
 ],
 "emails": [
  {
   "address": "liz@example.com",
   "type": "home",
   "customType": "",
   "primary": true
  }
 ],
 "addresses": [
  {
   "type": "work",
   "customType": "",
   "streetAddress": "1600 Amphitheatre Parkway",
   "locality": "Mountain View",
   "region": "CA",
   "postalCode": "94043"
  }
 ],
 "externalIds": [
  {
   "value": "employee number",
   "type": "custom",
   "customType": "office"
  }
 ],
 "organizations": [
  {
   "name": "Google Inc.",
   "title": "SWE",
   "primary": true,
   "customType": "",
   "description": "Software engineer"
  }
 ],
 "phones": [
  {
   "value": "+1 nnn nnn nnnn",
   "type": "work"
  }
 ],
 "aliases": [
  "lizsmith@example.com",
  "lsmith@example.com"
 ],
 "nonEditableAliases": [
  "liz@test.com"
 ],
 "customerId": "C03az79cb",
 "orgUnitPath": "corp/engineering",
 "isMailboxSetup": true,
 "includeInGlobalAddressList": true
}

Получить список всех пользователей в домене.

Чтобы получить список всех пользователей в одном домене, используйте следующий GET запрос и включите авторизацию, описанную в разделе «Авторизация запросов» . Для удобства чтения в этом примере используются переводы строк:

GET https://admin.googleapis.com/admin/directory/v1/users
?domain=primary domain name&pageToken=token for next results page
&maxResults=max number of results per page
&orderBy=email, givenName, or familyName
&sortOrder=ascending or descending
&query=email, givenName, or familyName:the query's value*

Свойства запроса и ответа см. в справочнике API .

JSON-ответ

В этом примере возвращаются все пользователи из домена example.com, при этом на каждой странице ответа отображается максимум 2 домена пользователей. Для последующего списка пользователей в этом ответе используется nextPageToken . По умолчанию система возвращает список из 100 пользователей в алфавитном порядке по адресу электронной почты пользователя:

GET https://admin.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ возвращает 2 учетные записи пользователей в домене example.com ( maxResults=2 ):

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "liz@example.com",
   "name": {
    "givenName": "Liz",
    "familyName": "Smith",
    "fullName": "Liz Smith"
   },
   "isAdmin": true,
   "isDelegatedAdmin": false,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "ims": [
    {
     "type": "work",
     "protocol": "gtalk",
     "im": "lizim@talk.example.com",
     "primary": true
    }
   ],
   "emails": [
    {
     "address": "liz@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "addresses": [
    {
     "type": "work",
     "customType": "",
     "streetAddress": "1600 Amphitheatre Parkway",
     "locality": "Mountain View",
     "region": "CA",
     "postalCode": "94043"
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "organizations": [
    {
     "name": "Google Inc.",
     "title": "SWE",
     "primary": true,
     "customType": "",
     "description": "Software engineer"
    }
   ],
   "phones": [
    {
     "value": "+1 nnn nnn nnnn",
     "type": "work"
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "user unique ID",
   "primaryEmail": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": true,
   "suspensionReason": "ADMIN",
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "contractor license number",
     "type": "custom",
     "customType": "work"
    }
   ],
   "aliases": [
    "second_admin@example.com"
   ],
   "nonEditableAliases": [
    "admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "next page token"
}

Получить всех пользователей учетных записей.

Чтобы получить список всех пользователей в учетной записи, которая может включать несколько доменов, используйте следующий GET запрос и укажите авторизацию, описанную в разделе «Авторизация запросов» . Для удобства чтения в этом примере используются переводы строк:

GET https://admin.googleapis.com/admin/directory/v1/users
?customer=my_customer or customerId&pageToken=token for next results page
&maxResults=max number of results per page
&orderBy=email, givenName, or familyName
&sortOrder=ascending or descending
&query=user attributes
  • Строка запроса customer — это значение my_customer или customerId .
  • Используйте строку my_customer для обозначения customerId вашей учетной записи.
  • В качестве администратора реселлера используйте customerId клиента, которому осуществляется перепродажа. В качестве customerId используйте основное доменное имя учетной записи в запросе на получение всех пользователей в рамках операции с доменом . В полученном ответе будет содержаться значение customerId .
  • Необязательный параметр запроса orderBy определяет, будет ли список отсортирован по основному адресу электронной почты пользователя, фамилии или имени. При использовании orderBy вы также можете использовать параметр запроса sortOrder для отображения результатов в порядке возрастания или убывания.
  • Необязательный параметр query позволяет осуществлять поиск по множеству полей в профиле пользователя, включая как основные, так и пользовательские поля. Примеры см. в разделе «Поиск пользователей» .

Свойства запроса и ответа см. в справочнике API .

В этом примере администратор учетной записи запрашивает возврат всех пользователей учетной записи, при этом на каждой странице ответа должна быть указана только одна запись пользователя. nextPageToken ведет на следующую страницу результатов:

GET https://admin.googleapis.com/admin/directory/v1/users?customer=my_customer&maxResults=1

В этом примере администратор реселлера запрашивает всех пользователей в перепроданном аккаунте, у которого значение customerId равно C03az79cb .

GET https://admin.googleapis.com/admin/directory/v1/users?customer=C03az79cb&maxResults=1

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ возвращает всех пользователей из этой учетной записи:

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
     "second_admin@example.com"
   ],
   "nonEditableAliases": [
     "another_admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "liz@example.com",
   "name": {
    "givenName": "Elizabeth",
    "familyName": "Smith",
    "fullName": "Elizabeth Smith"
   },
   "isAdmin": false,
   "isDelegatedAdmin": false,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": false,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "liz@example.com",
     "type": "home",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "bank"
    }
   ],
   "relations": [
    {
     "value": "liz",
     "type": "friend",
     "customType": ""
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "test3@example.com",
   "name": {
    "givenName": "Tester",
    "familyName": "Three",
    "fullName": "Tester Three"
   },
   "isAdmin": false,
   "isDelegatedAdmin": false,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "test@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
    "tester3@example.com"
   ],
   "nonEditableAliases": [
    "third@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "work_admin@example.com",
   "name": {
    "givenName": "Admin",
    "familyName": "Work",
    "fullName": "Admin Work"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "work_admin@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
    "my_alias@example.com"
   ],
   "nonEditableAliases": [
    "other_alias@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "NNNNN"
}

Восстановить недавно удаленных пользователей

Чтобы получить список всех пользователей, удаленных из учетной записи или из одного из доменов учетной записи за последние 20 дней, используйте следующие GET запросы и включите авторизацию, описанную в разделе «Авторизованные запросы» . Чтобы восстановить пользователя, см. раздел «Восстановление пользователя» .

Чтобы получить список пользователей, удаленных за последние 20 дней из основного домена учетной записи или его поддомена, используйте следующий GET запрос. Строка запроса domain — это имя основного домена. Свойства запроса и ответа для пользователя см. в справочнике API . Для удобства чтения в этом примере используются переводы строк:

GET https://admin.googleapis.com/admin/directory/v1/users
?domain=primary domain name&pageToken=token for next results page
&maxResults=max number of results per page
&showDeleted=true
Если у учетной записи несколько доменов, вы можете получить список пользователей, удаленных за последние 20 дней из всей учетной записи, используя следующий GET запрос. Для удобства чтения в этом примере используются переводы строк:
GET https://admin.googleapis.com/admin/directory/v1/users
?customer=my_customer or customerId&pageToken=token for next results page
&maxResults=max number of results per page&showDeleted=true
  • Строка запроса customer — это значение my_customer или customerId .
  • В качестве администратора учетной записи используйте строку my_customer для обозначения идентификатора клиента customerId вашей учетной записи.
  • В качестве администратора реселлера используйте customerId клиента, которому осуществляется перепродажа. В качестве customerId используйте основное доменное имя учетной записи в запросе на получение всех пользователей в рамках операции с доменом . В полученном ответе будет содержаться значение customerId .

Свойства запроса и ответа см. в справочнике API .

В этом примере администратор учетной записи запрашивает всех удаленных пользователей из этой учетной записи:

GET https://admin.googleapis.com/admin/directory/v1/users?customer=my_customer&showDeleted=true

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ возвращает список всех пользователей, удаленных за последние 20 дней:

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "user1@example.com"
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "user3@example.com"
  }
 ],
 "nextPageToken": "token for next page of deleted users"
}

Получить фотографию пользователя

API получает одну миниатюру фотографии — последнюю фотографию профиля Google. Чтобы получить последнюю фотографию пользователя, используйте следующий GET запрос и включите авторизацию, описанную в разделе «Авторизация запросов» . В качестве userKey может использоваться основной адрес электронной почты пользователя, id пользователя или любой из псевдонимов электронной почты пользователя. Свойства запроса и ответа см. в справочнике API .

GET https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

В этом примере возвращается последняя фотография пользователя liz@example.com:

GET https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/photos/thumbnail

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 200 .

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

Безопасное для веб-использования кодирование ваших фотографий в формате base64, используемое API, аналогично RFC 4648 'base64url' . Это означает:

  • Символ косой черты (/) заменяется символом подчеркивания (_).
  • Знак плюс (+) заменяется знаком дефис (-).
  • Символ равенства (=) заменяется звездочкой (*).
  • Для заполнения используется символ точки (.) вместо стандартного определения baseURL в RFC-4648, где для заполнения используется знак равенства (=). Это сделано для упрощения анализа URL-адресов.
  • Независимо от размера загружаемой фотографии, API пропорционально уменьшает её до 96x96 пикселей.

Если вам необходимо создавать совместимые ссылки из JavaScript, библиотека Google Closure Library включает функции кодирования и декодирования Base64 , распространяемые под лицензией Apache.

Получить данные пользователя, не являющегося администратором.

Хотя учетные записи пользователей могут изменяться только администраторами, любой пользователь в домене может читать профили пользователей. Пользователь, не являющийся администратором, может отправить запрос users.get или users.list с параметром viewType , равным domain_public , чтобы получить общедоступный профиль пользователя. Область действия https://www.googleapis.com/auth/admin.directory.user.readonly идеально подходит для этого случая.

Представление domain_public позволяет пользователю без прав администратора получить доступ к стандартному набору основных полей. Для пользовательского поля при определении схемы можно выбрать, должно ли оно быть общедоступным или приватным.

Обновить фотографию пользователя

Для обновления фотографии пользователя используйте следующий PUT запрос и включите авторизацию, описанную в разделе «Авторизация запросов» . userKey может использоваться основной адрес электронной почты пользователя, id пользователя или любой из адресов электронной почты псевдонимов пользователей. Свойства запроса и ответа см. в справочнике API .

PUT https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

В этом примере обновляется фотография liz@example.com:

PUT https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/photos/thumbnail
{
"photoData": "web safe base64 encoded photo data"
}

При обновлении фотографии API игнорирует height и width .

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 200 .

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

Удалить фотографию пользователя

Для удаления фотографии пользователя используйте следующий DELETE запрос и включите авторизацию, описанную в разделе «Авторизованные запросы» . userKey может использоваться основной адрес электронной почты пользователя, id пользователя или любой из адресов электронной почты псевдонимов пользователей. Свойства запроса и ответа см. в справочнике API .

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

После удаления фотография пользователя не отображается. В тех случаях, когда требуется фотография пользователя, вместо неё будет отображаться силуэт.

Удалить учетную запись пользователя

Для удаления учетной записи пользователя используйте следующий запрос DELETE , включив в него авторизацию, описанную в разделе «Авторизованные запросы» . В качестве userKey может использоваться основной адрес электронной почты пользователя, уникальный id пользователя или один из псевдонимов электронной почты пользователя. Свойства запроса и ответа см. в справочнике API .

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey

В этом примере удаляется учетная запись пользователя liz@example.com:

DELETE https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

В случае успешного ответа возвращается только код состояния HTTP 200 .

Важные моменты, которые следует учесть перед удалением пользователя:

  • Удаленный пользователь больше не сможет войти в систему.
  • Для получения более подробной информации об удалении учетной записи пользователя обратитесь в центр поддержки администратора .

Восстановить удаленную учетную запись пользователя

Для восстановления учетной записи пользователя, удаленной в течение последних 20 дней, необходимо соблюдение определенных условий .

Для восстановления удаленной учетной записи пользователя используйте следующий POST запрос и включите авторизацию, описанную в разделе «Авторизованные запросы» . Ключ userKey — это уникальный id пользователя, найденный в ответе на операцию «Получить пользователей, удаленных за последние 20 дней» . Основной адрес электронной почты пользователя или один из его псевдонимов не может быть использован в userKey для этой операции. Свойства запроса и ответа см. в справочнике API .

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/undelete

В этом примере пользователь liz@example.com восстанавливается. Все предыдущие свойства учетной записи этого пользователя восстанавливаются:

POST https://admin.googleapis.com/admin/directory/v1/users/12309329403209438205/undelete

В случае успешного ответа возвращается только код состояния HTTP 204. Чтобы просмотреть учетную запись неудаленного пользователя, используйте операцию «Получить пользователя» .