Google Action履行在模拟器中不起作用

时间:2019-05-12 09:31:20

标签: dialogflow

我在Dialogflow中使用webhook设置了一个动作,该动作使用ngrok隧道指向本地服务器。当使用Dialogflow的“立即测试”功能时,网络挂钩正在运行,请求已发送到网络挂钩,并且正在接收响应,但是在Simulator中进行测试时,它表示“操作现在没有响应”。在ngrok日志中,我可以看到向端点发出的请求与使用“立即测试”时相同。 在模拟器的日志中,它显示“ MalformedResponse:无法将Dialogflow响应解析为AppResponse”。

这是从Dialogflow的诊断信息中看到的实现响应:

{
  "payload": {
    "google": {
      "expectUserResponse": false,
      "richResponse": {
        "items": {
          "simpleResponse": {
            "textToSpeech": "test",
            "displayText": "test"
          }
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

在此评论https://stackoverflow.com/a/55238042/2197296中找到了解决方案, 原来simpleResponse数组中的items元素必须包裹在另一个数组中,如下所示:

"webhookPayload": {
  "google": {
     "richResponse": {
     "items": [
        {
          "simpleResponse": {
            "displayText": "test",
            "textToSpeech": "test"
          }
        }
      ]
    },
    "expectUserResponse": false
  }
},