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/makeAdminJSON-запрос
В этом примере пользователь с 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
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. Чтобы просмотреть учетную запись неудаленного пользователя, используйте операцию «Получить пользователя» .