必须设置格式错误的响应“ final_response”

时间:2018-06-23 20:57:45

标签: actions-on-google dialogflow

我正在使用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.

2 个答案:

答案 0 :(得分:2)

该JSON响应对Dialogflow Webhook实现协议的V2有效。确保您已完成以下操作:

  1. 确保已打开V2 API。点击左上角的设置齿轮,然后点击V2 API按钮。

    https://getbootstrap.com/docs/4.0/utilities/text/

  2. 确保已为Webhook的URL设置了“实现”,并且已针对要测试的Intent启用了该功能。

答案 1 :(得分:0)

如果您为意图启用了Webhook,请确保添加行'WebhookClient.add('This is a sample response'),因为当为意图启用Webhooks时,它期望用户已经设置了一些响应在webhook意向处理程序中。还要确保add()不在任何条件语句中,例如ifwhile等。

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,请确保您的意图中设置了默认响应。

我希望这会有所帮助!