На этой странице описывается, как подключить приложение 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 о том, что запрос конфигурации был выполнен.
Когда запускается ваше приложение Chat, поток зависит от конкретного полученного сообщения. В ответ на сообщение типа @app help
приложение Chat должно ответить сообщением без необходимости дополнительной настройки.
Когда пользователь успешно перенаправляется на configCompleteRedirectUrl
указанный в исходном сообщении, Google Chat выполняет следующие действия:
- Удалите подсказку, которая была отображена инициирующему пользователю.
- Сделайте исходное сообщение общедоступным, сделав его видимым для других участников сообщества.
- Отправьте исходное сообщение в то же приложение Chat второй раз.
Посещение configCompleteRedirectUrl
влияет только на одно сообщение пользователя. Если пользователь пытался отправить сообщение в приложение Chat несколько раз и в результате получил несколько запросов, нажатие на конкретный запрос и завершение процесса аутентификации и настройки влияет только на это конкретное сообщение. Другие сообщения не изменяются.
Когда событие взаимодействия MESSAGE
повторно отправляется таким образом, оно должно быть идентично исходному событию; однако существуют некоторые ситуации, когда события взаимодействия MESSAGE
могут отличаться. Например, когда в сообщении упоминаются как Chat app A, так и Chat app B, пользователь может редактировать сообщение, если Chat app A ответит обычным сообщением до аутентификации в Chat app B. В этом случае Chat app B получит отредактированный текст сообщения после того, как пользователь завершит аутентификацию и настройку.
Аутентификация пользователя чата вне чата
В некоторых случаях, например, при запросе авторизации OAuth для API, вашему приложению необходимо ссылаться на URL-адрес за пределами Chat, сохраняя при этом личность пользователя. Лучший способ идентифицировать пользователя в таких случаях — защитить целевое приложение с помощью Google Sign-in .
Используйте токен идентификации, выданный во время входа, чтобы получить идентификатор пользователя. sub
содержит уникальный идентификатор пользователя и может быть сопоставлена с идентификатором пользователя из Google Chat.
Хотя эти два идентификатора не совсем идентичны, их можно привести к одному значению. Чтобы привести значение sub
к Google Chat users/{user}
, добавьте к значению users/
. Например, значение заявки 123
эквивалентно имени пользователя users/123
в сообщениях в вашем приложении Chat.
Похожие темы
- Получать и отвечать на взаимодействие с пользователем
- В примере приложения MyProfile для идентификации пользователя используется идентификационный токен из ответа Google Sign-in.