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

На этой странице описывается, как подключить приложение 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 о том, что запрос конфигурации выполнен.

При запуске вашего чат-приложения порядок действий зависит от конкретного полученного сообщения. В ответ на сообщение типа @app help чат-приложение должно отправить сообщение без необходимости дополнительной настройки.

Когда пользователь успешно перенаправлен на configCompleteRedirectUrl указанный в исходном сообщении, Google Chat выполняет следующие действия:

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