На этой странице описывается, как ваше приложение чата может открывать диалоги для ответа пользователям.
Диалоги — это оконные карточные интерфейсы, которые открываются из чат-пространства или сообщения. Диалог и его содержимое видны только пользователю, который его открыл.
Приложения чата могут использовать диалоги для запроса и сбора информации от пользователей чата, включая многошаговые формы. Для получения более подробной информации о создании входных данных форм см. Сбор и обработка информации от пользователей .
Предпосылки
Node.js
Приложение Google Chat, которое получает и отвечает на события взаимодействия . Чтобы создать интерактивное приложение Chat с использованием HTTP-сервиса, выполните это краткое руководство .Питон
Приложение Google Chat, которое получает и отвечает на события взаимодействия . Чтобы создать интерактивное приложение Chat с использованием HTTP-сервиса, выполните это краткое руководство .Ява
Приложение Google Chat, которое получает и отвечает на события взаимодействия . Чтобы создать интерактивное приложение Chat с использованием HTTP-сервиса, выполните это краткое руководство .Скрипт приложений
Приложение Google Chat, которое получает и отвечает на события взаимодействия . Чтобы создать интерактивное приложение Chat в Apps Script, выполните это краткое руководство .Открыть диалог


В этом разделе объясняется, как ответить и настроить диалог, выполнив следующие действия:
- Инициируйте запрос диалога из взаимодействия с пользователем.
- Обработайте запрос, вернувшись и открыв диалог.
- После того, как пользователи отправят информацию, обработайте отправку, закрыв диалог или вернувшись к другому диалогу.
Инициировать диалоговый запрос
Приложение чата может открывать диалоговые окна только для ответа на взаимодействие с пользователем, например, на команду или нажатие кнопки в сообщении на карточке.
Чтобы ответить пользователям диалогом, приложение чата должно создать взаимодействие, которое инициирует запрос диалога, например следующее:
- Ответ на команду. Чтобы вызвать запрос от команды, необходимо установить флажок Открывает диалог при настройке команды .
- Ответить на нажатие кнопки в сообщении , как в части карточки, так и в нижней части сообщения. Чтобы вызвать запрос от кнопки в сообщении, вы настраиваете действие
onClick
кнопки, устанавливая ееinteraction
наOPEN_DIALOG
. - Ответ на нажатие кнопки на домашней странице приложения Chat . Чтобы узнать об открытии диалогов с домашних страниц, см. Создание домашней страницы для вашего приложения Google Chat .

/addContact
.Сообщение также содержит кнопку, нажав которую пользователь может запустить команду.
Следующий пример кода показывает, как вызвать запрос диалога с кнопки в сообщении карточки. Чтобы открыть диалог, поле button.interaction
устанавливается в OPEN_DIALOG
:
Node.js
Питон
Ява
Скрипт приложений
Этот пример отправляет сообщение карты, возвращая карту JSON . Вы также можете использовать службу карт Apps Script .
Открыть начальный диалог
Когда пользователь запускает запрос диалога, ваше приложение Chat получает событие взаимодействия, представленное как тип event
в API Chat. Если взаимодействие запускает запрос диалога, поле dialogEventType
события устанавливается в REQUEST_DIALOG
.
Чтобы открыть диалог, ваше приложение Chat может ответить на запрос, вернув объект actionResponse
с type
DIALOG
и объектом Message
. Чтобы указать содержимое диалога, вы включаете следующие объекты:
- Объект
actionResponse
,type
которого установлен наDIALOG
. - Объект
dialogAction
. Полеbody
содержит элементы пользовательского интерфейса (UI) для отображения на карте, включая один или несколькоsections
виджетов. Для сбора информации от пользователей можно указать виджеты ввода формы и виджет кнопки. Чтобы узнать больше о проектировании ввода формы, см. Сбор и обработка информации от пользователей .
В следующем примере кода показано, как приложение чата возвращает ответ, открывающий диалоговое окно:
Node.js
Питон
Ява
Скрипт приложений
Этот пример отправляет сообщение карты, возвращая карту JSON . Вы также можете использовать службу карт Apps Script .
Обработка отправки диалога
Когда пользователи нажимают кнопку, которая отправляет диалог, ваше приложение Chat получает событие взаимодействия CARD_CLICKED
, где dialogEventType
— SUBMIT_DIALOG
. Чтобы понять, как собирать и обрабатывать информацию в диалоге, см. Сбор и обработка информации от пользователей Chat .
Ваше приложение чата должно отреагировать на событие взаимодействия, выполнив одно из следующих действий:
- Вернуться к другому диалоговому окну для заполнения другой карточки или формы.
- Закройте диалоговое окно после проверки предоставленных пользователем данных и при необходимости отправьте подтверждающее сообщение.
Необязательно: Возврат к другому диалоговому окну
После того как пользователи отправят первоначальный диалог, приложения чата могут возвращать один или несколько дополнительных диалогов, чтобы помочь пользователям просмотреть информацию перед отправкой, заполнить многошаговые формы или динамически заполнить содержимое форм.
Для обработки данных, которые вводят пользователи, приложение Chat использует объект event.common.formInputs
. Чтобы узнать больше о получении значений из виджетов ввода, см. Сбор и обработка информации от пользователей .
Чтобы отслеживать любые данные, которые пользователи вводят из начального диалога, необходимо добавить параметры к кнопке, которая открывает следующий диалог. Подробнее см. в разделе Передача данных на другую карту .
В этом примере приложение чата открывает начальный диалог, который ведет ко второму диалогу для подтверждения перед отправкой:
Node.js
Питон
Ява
Скрипт приложений
Этот пример отправляет сообщение карты, возвращая карту JSON . Вы также можете использовать службу карт Apps Script .
Закрыть диалог
Когда пользователи нажимают кнопку в диалоговом окне, ваше приложение чата выполняет связанное с ним действие и предоставляет объекту события следующую информацию:
-
eventType
—CARD_CLICKED
. -
dialogEventType
—SUBMIT_DIALOG
.
Приложение Chat должно возвращать объект ActionResponse
с type
установленным на DIALOG
, и dialogAction
заполненным. Если действие не завершилось неудачей, то dialogAction.actionStatus
должен быть OK
как в следующем примере:
Node.js
Питон
Ява
Скрипт приложений
Этот пример отправляет сообщение карты, возвращая карту JSON . Вы также можете использовать службу карт Apps Script .
Необязательно: Отобразить временное уведомление
При закрытии диалогового окна вы также можете отобразить временное текстовое уведомление пользователю, взаимодействующему с приложением.
Приложение чата может ответить уведомлением об успешном выполнении или ошибке, вернув ActionResponse
с установленным actionStatus
.
В следующем примере проверяется допустимость параметров и закрывает диалоговое окно с текстовым уведомлением, если параметры недопустимы:
Node.js
Питон
Ява
Скрипт приложений
Этот пример отправляет сообщение карты, возвращая карту JSON . Вы также можете использовать службу карт Apps Script .
Подробную информацию о передаче параметров между диалогами см. в разделе Передача данных на другую карту .
Необязательно: отправьте сообщение с подтверждением в чате
Закрыв диалоговое окно, вы также можете отправить новое сообщение в чате или обновить существующее.
Чтобы отправить новое сообщение, верните объект ActionResponse
с type
NEW_MESSAGE
. Следующий пример закрывает диалог с подтверждающим текстовым сообщением:
Node.js
Питон
Ява
Скрипт приложений
Этот пример отправляет сообщение карты, возвращая карту JSON . Вы также можете использовать службу карт Apps Script .
Чтобы обновить сообщение, верните объект actionResponse
, содержащий обновленное сообщение и устанавливающий один из следующих type
:
-
UPDATE_MESSAGE
: обновляет сообщение, вызвавшее запрос диалога . -
UPDATE_USER_MESSAGE_CARDS
: обновляет карту из ссылки предварительного просмотра .
Устранение неполадок
Когда приложение или карта Google Chat возвращает ошибку, интерфейс Chat отображает сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда интерфейс Chat не отображает никаких сообщений об ошибках, но приложение или карта Chat выдает неожиданный результат; например, сообщение карты может не отображаться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, описательные сообщения об ошибках и данные журнала доступны, чтобы помочь вам исправить ошибки, когда включено ведение журнала ошибок для приложений чата. Для получения справки по просмотру, отладке и исправлению ошибок см. Устранение неполадок и исправление ошибок Google Chat .
Похожие темы
- Посмотрите пример Contact Manager — чат-приложения, которое использует диалоги для сбора контактной информации.
- Открытие диалогов с домашней страницы приложения Google Chat .
- Отвечайте на команды приложения Google Chat
- Обработка информации, введенной пользователями