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