API каталога предоставляет программные методы для создания, обновления и удаления пользователей. Вы также можете получить информацию об отдельных пользователях или списках пользователей, соответствующих заданным критериям. Ниже приведены примеры некоторых основных пользовательских операций.
Создать учетную запись пользователя
Вы можете добавить учетную запись пользователя в любой домен своей учетной записи Google Workspace. Прежде чем добавлять учетную запись пользователя, подтвердите владение доменом .
Если вы обновили свою личную учетную запись Gmail до корпоративной учетной записи электронной почты с собственным доменным именем, вы не сможете создавать новые учетные записи пользователей, пока не разблокируете дополнительные настройки Google Workspace. Подробную информацию см. в разделе Учетные записи корпоративной электронной почты G Suite, обновленные до G Suite Basic .
Чтобы создать учетную запись пользователя с использованием одного из ваших доменов, используйте следующий запрос POST
и включите авторизацию, описанную в разделе Подробнее об аутентификации и авторизации . Вы можете просмотреть доступные области действия Directory 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, они получат учетные записи посетителей в формате имя_пользователя_посетителя@ваш_домен.com. Если вы добавите пользователя с тем же именем, что и учетная запись посетителя, эта учетная запись будет преобразована в полноценную учетную запись Google Workspace. Учетная запись сохранит текущие права доступа к файлам на Диске. См. раздел «Обмен документами с посетителями» .
Успешный ответ возвращает код состояния HTTP 200 . Наряду с кодом состояния ответ возвращает свойства новой учетной записи пользователя.
Обновить учетную запись пользователя
Чтобы обновить учетную запись пользователя, используйте следующий запрос PUT
и включите авторизацию, описанную в разделе «Авторизация запросов» . userKey
может быть основным адресом электронной почты пользователя, уникальным id
пользователя или одним из псевдонимов адреса электронной почты пользователя.
PUT https://admin.googleapis.com/admin/directory/v1/users/ userKey
И тело запроса, и ответ содержат экземпляр User
. Однако API каталога поддерживает семантику исправлений , поэтому вам нужно только отправить обновленные поля в свой запрос.
Образец запроса
В приведенном ниже примере givenName
пользователя было «Элизабет» при создании учетной записи пользователя, и был указан только рабочий адрес электронной почты.
{
"name": {
"givenName": "Elizabeth",
"familyName": "Smith"
},
"emails": [
{
"address": "liz@example.com",
"type": "work",
"primary": true
}
}
В приведенном ниже запросе givenName
обновляется с «Элизабет» на «Лиз», а также добавляется домашний адрес электронной почты. Обратите внимание, что оба адреса электронной почты предоставляются полностью, поскольку поле представляет собой массив.
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 возвращаются с максимум двумя доменами пользователей на страницу ответа. В этом ответе имеется nextPageToken
для следующего списка пользователей. По умолчанию система возвращает список из 100 пользователей в алфавитном порядке адреса электронной почты пользователя:
GET https://admin.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2
Успешный ответ возвращает код состояния HTTP 200 . Вместе с кодом состояния ответ возвращает две учетные записи пользователей в домене 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 включает функции кодирования и декодирования 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"
}
При обновлении фотографии height
и width
игнорируются API.
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 . Чтобы просмотреть восстановленную учетную запись пользователя, используйте операцию «Получить пользователя» .