Приложение Google Chat (Python/FastAPI) возвращает сообщение «Не удалось проанализировать JSON» для всех форматов ответоPython

Программы на Python
Ответить
Anonymous
 Приложение Google Chat (Python/FastAPI) возвращает сообщение «Не удалось проанализировать JSON» для всех форматов ответо

Сообщение Anonymous »

Я пытаюсь развернуть простое приложение Google Chat, используя Python (FastAPI/Functions Framework) и туннель ngrok в качестве конечной точки.
Моя цель — создать стандартного текстового чат-бота, который будет отвечать на сообщения пользователя простейшим возможным 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: оболочка действия-ответа

При ответе с помощью оболочки действия надстройки (

Код: Выделить всё

actionResponse
+ cardV2):
JSON

Код: Выделить всё

{
"actionResponse": { "type": "NEW_MESSAGE" },
"cardsV2": [{ ... }]
}
Сообщение журнала ошибок:

Не удалось проанализировать JSON как RenderActions, DataActions или Card. Не удалось найти поле: actionResponse в сообщении google.apps.card.v1.Card

Попытка 4: решение для переполнения стека
При ответе с помощью оболочки действия надстройки (

Код: Выделить всё

actionResponse
+ cardV2):
Я также попробовал решение, предложенное в: Приложение 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 настроен. Я правильно получаю сообщения.
  • Функциональность: Слэш-команды и диалоговые окна пусты/отключены.
[*]Код сервера: Python возвращает Response(content=json.dumps(payload), media_type="application/json", status_code=200).


Вопрос
Как заставить мой проект Google Cloud маршрутизировать события взаимодействия через стандарт Google Конвейер API чата (

Код: Выделить всё

chat.googleapis.com
) вместо устаревшего конвейера надстроек Google Workspace (

Код: Выделить всё

gsuiteaddons.googleapis.com
), чтобы мои простые ответы {"text": "..." были приняты?
Есть ли скрытый параметр в консоли администратора Google Cloud или Google Workspace, который определяет развертывание как надстройку, а не как стандартное приложение чата, несмотря на конфигурацию API?

Подробнее здесь: https://stackoverflow.com/questions/798 ... l-response
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»