На этой странице описывается, как подключить приложение Google Chat к сервису или инструменту, не входящему в состав Google Chat. Хотя приложения Chat сами по себе обладают мощными возможностями, они часто работают совместно с другими системами и требуют дополнительных приложений для подключения учётных записей, авторизации доступа к данным, отображения дополнительных данных или настройки пользовательских настроек.
Предпосылки
Приложение Google Chat, настроенное на получение событий взаимодействия и реагирование на них. Чтобы создать интерактивное приложение Chat, выполните одно из следующих быстрых действий в зависимости от архитектуры приложения , которую вы хотите использовать:- HTTP-сервис с функциями Google Cloud
- Скрипт Google Apps
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
Запросить конфигурацию приложения чата у пользователя
Если для выполнения запроса требуется дополнительная настройка, которую невозможно выполнить напрямую в приложении Chat, верните пользователю URL-адрес конфигурации как часть обычного ответа или представьте его в частном порядке в следующей форме:
{ "actionResponse": { "type": "REQUEST_CONFIG", "url": "CONFIGURATION_URL" } }
Это указывает Google Chat на необходимость отображения пользователю личного запроса, где CONFIGURATION_URL
— это ссылка, по которой пользователь может перейти для дополнительной аутентификации, авторизации или настройки. Ответ REQUEST_CONFIG
является взаимоисключающим и не соответствует обычному ответному сообщению. Любой текст, карточки и другие атрибуты игнорируются.
Завершите запрос конфигурации
Каждое событие взаимодействия MESSAGE
, ADDED_TO_SPACE
и APP_COMMAND
, получаемое вашим приложением Chat, также включает поле configCompleteRedirectUrl
. Необходимо включить этот URL в URL-адрес конфигурации, чтобы он использовался после завершения процесса. Перенаправление на этот URL-адрес сигнализирует Google Chat о том, что запрос конфигурации выполнен.
При запуске вашего чат-приложения порядок действий зависит от конкретного полученного сообщения. В ответ на сообщение типа @app help
чат-приложение должно отправить сообщение без необходимости дополнительной настройки.
Когда пользователь успешно перенаправлен на configCompleteRedirectUrl
указанный в исходном сообщении, Google Chat выполняет следующие действия:
- Удалите подсказку, которая была отображена инициирующему пользователю.
- Сделайте исходное сообщение публичным и его увидят другие участники сообщества.
- Отправьте исходное сообщение в то же приложение Chat еще раз.
Переход по ссылке configCompleteRedirectUrl
влияет только на одно сообщение пользователя. Если пользователь пытался отправить сообщение в приложение Chat несколько раз и в результате получил несколько запросов, переход по конкретному запросу и завершение процесса аутентификации и настройки повлияет только на это сообщение. Остальные сообщения не изменяются.
При повторной отправке события взаимодействия MESSAGE
таким образом оно должно быть идентично исходному событию; однако в некоторых ситуациях события взаимодействия MESSAGE
могут различаться. Например, если в сообщении упоминаются как чат-приложение A, так и чат-приложение B, пользователь может отредактировать сообщение, если чат-приложение A ответит обычным сообщением до аутентификации в чат-приложении B. В этом случае чат-приложение B получит отредактированный текст сообщения после того, как пользователь завершит аутентификацию и настройку.
Аутентификация пользователя чата вне чата
В некоторых случаях, например, при запросе авторизации OAuth для API, вашему приложению необходимо ссылаться на URL-адрес за пределами Chat, сохраняя при этом идентификационные данные пользователя. Лучший способ идентифицировать пользователя в таких случаях — защитить целевое приложение с помощью входа через Google .
Используйте токен, выданный при входе в систему, для получения идентификатора пользователя. sub
содержит уникальный идентификатор пользователя и может быть сопоставлена с идентификатором пользователя из Google Chat.
Хотя эти два идентификатора не совсем идентичны, их можно привести к одному значению. Чтобы привести значение sub
к типу Google Chat users/{user}
, добавьте к нему префикс users/
. Например, значение заявки 123
эквивалентно имени пользователя users/123
в сообщениях в вашем чате.
Похожие темы
- Получать и реагировать на взаимодействие с пользователем
- В примере приложения MyProfile для идентификации пользователя используется идентификационный токен из ответа Google Sign-in.