Моя цель — создать стандартного текстового чат-бота, который будет отвечать на сообщения пользователя простейшим возможным JSON, например {"text": "Hello".
Проблема
Несмотря на то, что я следую официальным инструкциям В документации Google Chat по настройке интерактивного приложения ответы моего сервера отклоняются конечной точкой Google Cloud с ошибкой, указывающей, что запрос обрабатывается конвейером Дополнения Workspace (
Код: Выделить всё
gsuiteaddons.googleapis.comКаждая попытка ответить с помощью стандартного формата Chat API завершается неудачно, что приводит к следующему шаблону ошибок (упрощено для ясности):
Попытка 1: стандартный ответ приложения чата (желательный)
При ответе: {"text": "Test"Ошибка Сообщение журнала:
Не удалось проанализировать JSON как RenderActions, DataActions или Card. Не удалось найти поле: текст в сообщении google.apps.card.v1.RenderActions
Попытка 2: минимальный ответ современной карты
При ответе с использованием современной структуры cardV2 (что предлагается в документации для ответов на современные карты):JSON
Код: Выделить всё
{
"cardsV2": [{ ... minimal card structure ... }]
}
Не удалось проанализировать JSON как RenderActions, DataActions или Card. Не удалось найти поле: cardsV2 в сообщении google.apps.card.v1.RenderActions
Попытка 3: оболочка действия-ответа
При ответе с помощью оболочки действия надстройки (Код: Выделить всё
actionResponseJSON
Код: Выделить всё
{
"actionResponse": { "type": "NEW_MESSAGE" },
"cardsV2": [{ ... }]
}
Не удалось проанализировать JSON как RenderActions, DataActions или Card. Не удалось найти поле: actionResponse в сообщении google.apps.card.v1.Card
Попытка 4: решение для переполнения стека
При ответе с помощью оболочки действия надстройки (
Код: Выделить всё
actionResponseЯ также попробовал решение, предложенное в: Приложение Google Chat в облачных функциях (2-го поколения) — ответ не получен.
Сообщение журнала ошибок:
Не удалось проанализировать JSON как RenderActions, DataActions или Card. Не удалось проанализировать JSON как RenderActions. Ошибка: Ожидается объект сообщения, но получено: ["{\"hostAppDataAction\": {\"chatDataAction\": {\"createMessageAction\": {\"message\": {\"text\": \"test\"}}}}}",200,{"Content-Type":"application/json"}] Не удалось проанализировать JSON как DataActions. Ошибка: Ожидается объект сообщения, но получено: ["{\"hostAppDataAction\": {\"chatDataAction\": {\"createMessageAction\": {\"message\": {\"text\": \"test\"}}}}}",200,{"Content-Type":"application/json"}] Не удалось проанализировать JSON как карту. Ошибка: Ожидается объект сообщения, но получено: ["{\"hostAppDataAction\": {\"chatDataAction\": {\"createMessageAction\": {\"message\": {\"text\": \"test\"}}}}",200,{"Content-Type":"application/json"}] "
Моя конфигурация
- Платформа: Google Cloud Project
- Включенные API: явно включен только Google Chat API (API надстроек Google Workspace не включен).
- Конфигурация Chat API:
Интерактивные функции: Включено (чтобы разрешить настройку конечной точки). - Настройки подключения: URL-адрес приложения с ngrok настроен. Я правильно получаю сообщения.
- Функциональность: Слэш-команды и диалоговые окна пусты/отключены.
Вопрос
Как заставить мой проект Google Cloud маршрутизировать события взаимодействия через стандарт Google Конвейер API чата (
Код: Выделить всё
chat.googleapis.comКод: Выделить всё
gsuiteaddons.googleapis.comЕсть ли скрытый параметр в консоли администратора Google Cloud или Google Workspace, который определяет развертывание как надстройку, а не как стандартное приложение чата, несмотря на конфигурацию API?
Подробнее здесь: https://stackoverflow.com/questions/798 ... l-response
Мобильная версия