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

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

Предварительные условия

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

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

Если для выполнения запроса требуется дополнительная настройка, которую невозможно выполнить непосредственно в приложении Chat, верните URL-адрес конфигурации пользователю как часть обычного ответа или предоставьте его конфиденциально в следующей форме:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Это указывает Google Chat предоставить пользователю личное приглашение, где CONFIGURATION_URL — это ссылка, которую пользователь может посетить для дополнительной аутентификации, авторизации или настройки. Ответ REQUEST_CONFIG является взаимоисключающим с обычным ответным сообщением. Любой текст, карточки и другие атрибуты игнорируются.

Завершите запрос конфигурации

Каждое событие взаимодействия MESSAGE , которое получает ваше приложение Chat, также включает поле configCompleteRedirectUrl . Вы должны закодировать этот URL-адрес в URL-адресе конфигурации, который будет использоваться после завершения процесса. Перенаправление на этот URL-адрес сигнализирует Google Chat о том, что запрос конфигурации был выполнен.

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

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

  1. Удалите подсказку, отображавшуюся пользователю, инициировавшему операцию.
  2. Преобразуйте исходное сообщение в общедоступное, сделав его видимым для других участников пространства.
  3. Отправьте исходное сообщение в то же приложение чата во второй раз.

Посещение configCompleteRedirectUrl влияет только на одно сообщение пользователя. Если пользователь несколько раз пытался отправить сообщение в приложение чата и в результате получил несколько запросов, нажатие на определенное приглашение и завершение процесса аутентификации и настройки влияют только на это конкретное сообщение. Другие сообщения не изменяются.

Когда событие взаимодействия MESSAGE отправляется повторно таким образом, оно должно быть идентично исходному событию; однако в некоторых ситуациях события взаимодействия MESSAGE могут отличаться. Например, когда в сообщении упоминаются приложение Chat A и приложение Chat B, пользователь может редактировать сообщение, если приложение Chat A отвечает обычным сообщением перед аутентификацией в приложении Chat B. В этом случае приложение Chat B получает отредактированное сообщение. текст сообщения после того, как пользователь завершит аутентификацию и настройку.

Аутентификация пользователя чата вне чата

В некоторых случаях, например при запросе авторизации OAuth для API, вашему приложению необходимо ссылаться на URL-адрес за пределами Chat, сохраняя при этом личность пользователя. Лучший способ идентифицировать пользователя в таких случаях — защитить целевое приложение с помощью Google Sign-in .

Используйте токен удостоверения , выданный при входе в систему, чтобы получить идентификатор пользователя. sub заявка содержит уникальный идентификатор пользователя и может быть сопоставлена ​​с идентификатором пользователя из Google Chat.

Хотя эти два идентификатора не совсем идентичны, их можно принудительно использовать. Чтобы присвоить значение sub утверждения users/{user} , добавьте к значению users/ . Например, значение утверждения 123 эквивалентно имени пользователя user users/123 в сообщениях вашего приложения Chat.