Я пытаюсь отправить ответ от моего веб-крюка, чтобы инициировать изменение процесса на другую поверхность, но Действия в Google всегда выдают:
Должно быть установлено MalformedResponse 'final_response'.
И это не очень полезно.
Это JSON, который я возвращаю:
{
"payload": {
"google": {
"expectUserResponse": true,
"conversationToken": "{\"data\":{}}",
"userStorage": "{\"data\":{}}",
"expectedInputs": [
{
"inputPrompt": {
"richInitialPrompt": {
"items": [
{
"simpleResponse": {
"textToSpeech": "PLACEHOLDER"
}
}
]
}
},
"possibleIntents": [
{
"intent": "actions.intent.NEW_SURFACE",
"inputValueData": {
"@type": "type.googleapis.com/google.actions.v2.NewSurfaceValueSpec",
"capabilities": [
{
"name": "actions.capability.SCREEN_OUTPUT"
}
],
"context": "Sure, I have some sample images for you.",
"notificationTitle": "Sample Images"
}
}
]
}
]
}
}
}
В диалоге я настроил 2 намерения;одно намерение, которое возвращает указанный здесь json, и другое намерение с событием actions_intent_NEW_SURFACE, поэтому я знаю, что пользователь ответил на вопрос об изменении поверхности.
Я читал эти сайты:
https://developers.google.com/actions/assistant/surface-capabilities#multi-surface_conversations
https://dialogflow.com/docs/reference/api-v2/rest/Shared.Types/WebhookResponse
https://developers.google.com/actions/build/json/dialogflow-webhook-json#dialogflow-response-body
Действие В Google, webhook ответ с actions.intent.NEW_SURFACE (Это похоже нау меня та же проблема, но ОП не написал ответ.)
Но никто из них не пролил мне свет на этот вопрос.