На этой странице описано, как подключить приложение Google Chat к службе или инструменту, находящемуся за пределами Google Chat. Хотя приложения чата сами по себе являются мощными, они часто работают совместно с другими системами и требуют сопутствующих приложений для подключения учетных записей, авторизации доступа к данным, отображения дополнительных данных или настройки пользовательских настроек.
Предварительные условия
Приложение Google Chat с интерактивными функциями. Чтобы создать интерактивное приложение чата, выполните одно из следующих кратких руководств в зависимости от архитектуры приложения , которую вы хотите использовать:- HTTP-сервис с облачными функциями Google
- Скрипт Google Apps
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
Запрос конфигурации приложения 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 выполняет следующие шаги:
- Удалите подсказку, отображавшуюся пользователю, инициировавшему операцию.
- Преобразуйте исходное сообщение в общедоступное, сделав его видимым для других участников пространства.
- Отправьте исходное сообщение в то же приложение чата во второй раз.
Посещение 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.
Связанные темы
- Получать и отвечать на действия пользователя
- В примере приложения MyProfile для идентификации пользователя используется токен идентификации из ответа на вход в Google.