На этой странице объясняется, как приложения Google Chat и разработчики могут идентифицировать и указывать пользователей чата.
Для выполнения любого из следующих действий разработчику или создателю чат-приложения необходимо указать пользователя:
- Создайте сообщение, в котором пользователь упоминается с помощью символа @ .
- Пригласите или добавьте пользователя в существующее пространство , или добавьте пользователя в новое пространство .
- Находите прямые сообщения между приложением «Чат» и указанным пользователем, или между двумя пользователями.
- Получить данные о членстве пользователя в пространстве .
- Отправить личное сообщение пользователю.
- Подпишите пользователя на события, связанные с изменениями в его членстве, используя API Google Workspace Events.
Как чат идентифицирует пользователей
API Google Chat генерирует ресурс User для каждого пользователя и приложения, использующего чат. Ресурс User содержит следующие поля:
-
name: Имя ресурса в форматеusers/{user}, где{user}представляет собой уникальный и стабильный идентификатор. Вы можете использоватьusers/appв качестве псевдонима для вызывающего приложения чата. -
displayName: Только вывод. Отображаемое имя пользователя. -
avatarUrl: Только для вывода. URL изображения аватара пользователя. -
email: Только вывод. Адрес электронной почты пользователя. -
domainId: Уникальный идентификатор домена Google Workspace пользователя. -
type: Тип пользователя. Указывает, является ли пользователь чат-приложением (BOT) или человеком (HUMAN). -
isAnonymous: Только вывод. Еслиtrue, означает, что пользователь удален или его профиль не виден.
Сведения о профиле пользователя и правила видимости
При вызове API сообщений и членства с использованием аутентификации пользователя , API Google Chat заполняет ресурс User данными профиля. API заполняет поля displayName , email и avatarUrl как для внутренних пользователей (в вашей организации Google Workspace), так и для внешних пользователей (во внешних организациях или личных учетных записях Google).
Примерами мест, где API заполняет профили пользователей, являются следующие:
-
senderMessage. - Пользователи в
annotationsсообщений, например, упоминания пользователей@mentions. -
memberв рамках ресурсаMembership.
Правила конфиденциальности и видимости
Для защиты конфиденциальности пользователей API Google Chat применяет определенные правила видимости при определении того, следует ли заполнять данные профиля пользователя:
- Заполненный профиль : API заполняет данные профиля (присутствуют
displayName,emailиavatarUrl, аisAnonymousимеет значениеfalse), если пользователь принял приглашение в пространство (является участником пространства) или имеет предыдущую связь (например, историю личных сообщений) с вызывающим пользователем. - Анонимный профиль : Если пользователь упоминается в пространстве, не являясь его участником и не имея предварительной связи с вызывающим пользователем, его профиль остается анонимным. Для анонимного пользователя
isAnonymousравноtrue, и такие данные, какdisplayName,emailиavatarUrl, опускаются. Однако для запросов API, выполняемых с использованием аутентификации приложения , полеdisplayNameвсегда заполняется.
В следующем примере JSON показан ресурс User с заполненными данными профиля, возвращенными в ответе API или в результате взаимодействия:
{
"name": "users/12345678901234567890",
"displayName": "Sasha",
"domainId": "123abc",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "sasha@example.com",
"type": "HUMAN",
"isAnonymous": false
}
В следующем примере JSON показан анонимный ресурс User , где сведения о профиле пользователя не видны вызывающей стороне:
{
"name": "users/10987654321098765432",
"type": "HUMAN",
"isAnonymous": true
}
Укажите пользователя в запросе к API Google Чата
Для указания пользователя используйте следующие значения для параметра {user} :
Для пользователей вашей организации Google Workspace используйте один из следующих подходов:
-
nameресурсаUserв Chat API, напримерusers/123456789. - В API для работы с людьми имя ресурса "
Person" имеет вид{person_id}, гдеresourceName—people/{person_id}— например,users/123456789в API чата представляет того же человека, что иpeople/123456789в API для работы с людьми. -
idресурсаUserв API каталога — например,users/123456789в API чата — обозначает того же человека, что иusers/123456789в API каталога. - Для запросов к API, выполняемых с использованием аутентификации пользователя , адрес электронной почты пользователя используется в качестве псевдонима — например,
users/ EMAIL_USERNAME @ WORKSPACE_DOMAIN .com
-
Для пользователя, входящего во внешнюю организацию Google Workspace, или для пользователя, использующего учетную запись Google, воспользуйтесь одним из следующих вариантов:
- Псевдоним электронной почты — например
users/ EMAIL_USERNAME @ WORKSPACE_DOMAIN .comилиusers/ EMAIL_USERNAME @gmail.com. - Каноническое
nameресурсаUser(например,users/12345678901234567890), полученное в результате предыдущего вызова API или события взаимодействия.
- Псевдоним электронной почты — например
Идентификация пользователя на основе ответа API или события взаимодействия.
Идентифицировать пользователей, возвращаемых из API-запросов или входящих событий, можно несколькими способами:
- API сообщений : Получите идентификатор отправителя из
Message.senderили упомянутых пользователей изMessage.annotations[].userMention.user. - API для работы с членством : Получение идентификатора участника из
Membership.member. - События взаимодействия : Когда пользователь взаимодействует с приложением чата, чат отправляет событие взаимодействия , содержащее идентификатор пользователя в
Event.user.
Поскольку API Google Chat заполняет профили как внутренних, так и внешних пользователей при использовании аутентификации пользователей, разработчикам не нужно обращаться к API каталога для получения имен или адресов электронной почты участников и отправителей сообщений.
Связанные темы
- Пройдите аутентификацию и авторизацию как пользователь Google Chat .
- Добавить пользователя в пространство .
- Управление участниками в пространстве .
- @упомянуть пользователя в сообщении .
- Справочник по REST API
Userресурсов .