Подключите приложение чата к другим службам и инструментам.

На этой странице описывается, как подключить приложение Google Chat к сервису или инструменту, который находится за пределами Google Chat. Хотя приложения Chat сами по себе являются мощными, они часто работают совместно с другими системами и требуют сопутствующих приложений для подключения учетных записей, авторизации доступа к данным, отображения дополнительных данных или настройки пользовательских предпочтений.

Предпосылки

Приложение Google Chat, настроенное на получение и реагирование на события взаимодействия . Чтобы создать интерактивное приложение Chat, выполните одно из следующих быстрых действий в зависимости от архитектуры приложения , которую вы хотите использовать:

Запросить конфигурацию приложения чата у пользователя

Если для выполнения запроса требуется дополнительная настройка, которую невозможно выполнить напрямую в приложении 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 выполняет следующие действия:

  1. Удалите подсказку, которая была отображена инициирующему пользователю.
  2. Сделайте исходное сообщение общедоступным, сделав его видимым для других участников сообщества.
  3. Отправьте исходное сообщение в то же приложение 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.