我正在使用DialogFlow的webhook东西,当我按如下方式发送JSON响应时:
{
"fulfillmentText": "This is a text response",
"source": "example.com",
"payload": {
"google": {
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "this is a simple response"
}
}
]
}
}
}
}
但是在网络服务器响应后,我收到错误MalformedResponse 'final_response' must be set.
。
答案 0 :(得分:2)
该JSON响应对Dialogflow Webhook实现协议的V2有效。确保您已完成以下操作:
确保已打开V2 API。点击左上角的设置齿轮,然后点击V2 API按钮。
确保已为Webhook的URL设置了“实现”,并且已针对要测试的Intent启用了该功能。
答案 1 :(得分:0)
如果您为意图启用了Webhook,请确保添加行'WebhookClient.add('This is a sample response'),因为当为意图启用Webhooks时,它期望用户已经设置了一些响应在webhook意向处理程序中。还要确保add()不在任何条件语句中,例如if
或while
等。
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({request, response});
function webhookIntent(agent)
{
//All your custom logics.
//Ensure the below line is not inside any conditional statements
agent.add(`You should hear this response without any error!`);
}
}
或
如果您的意图中没有使用Webhooks,请确保您的意图中设置了默认响应。
我希望这会有所帮助!