API каталога предоставляет программные методы для создания, обновления и удаления пользователей. Вы также можете получить информацию об отдельных пользователях или списки пользователей, соответствующих заданным критериям. Ниже приведены примеры некоторых основных операций с пользователями.
Создать учетную запись пользователя
Вы можете добавить учетную запись пользователя в любой из доменов вашей учетной записи Google Workspace. Перед добавлением учетной записи пользователя подтвердите право собственности на домен .
Если вы обновили свою личную учетную запись Gmail до корпоративной учетной записи электронной почты с собственным доменным именем, вы не сможете создавать новые учетные записи пользователей, пока не разблокируете дополнительные настройки Google Workspace. Подробнее см. в разделе «Обновление корпоративных учетных записей электронной почты Google Workspace» .
Для создания учетной записи пользователя с использованием одного из ваших доменов используйте следующий 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
Для того чтобы стать суперадминистратором, пользователь должен сначала существовать. Эту операцию может выполнить только суперадминистратор учетной записи; делегированные администраторы не могут повышать пользователей до административных ролей. Информацию об использовании консоли администратора Google для изменения роли администратора см. в справочном центре администрирования .
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.
Прежде чем удалить пользователя, учтите следующее:
- Удаленный пользователь больше не может войти в систему.
- Для получения дополнительной информации об удалении учетной записи пользователя обратитесь в центр поддержки администратора .
Восстановить удаленную учетную запись пользователя
Для восстановления удаленной учетной записи пользователя используйте следующий 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. Чтобы просмотреть учетную запись неудаленного пользователя, используйте операцию «Получить пользователя» .