首页 > 解决方案 > “无法将 Dialogflow 响应解析为 AppResponse”是什么意思。Actions on Google 中的意思

问题描述

我正在尝试获得一个简单的 webhook(用 PHP 编写)来处理 google 上的 dialogflow/actions。我有一个标有“你好”的对话流意图,它链接到“谷歌助手欢迎”和对话流“欢迎”事件。

它设置为启用 webhook,并且在对话流测试区域中一切正常。然而,当我在谷歌助手中测试它时,我收到以下错误:

“MalformedResponse 无法将 Dialogflow 响应解析为 AppResponse。”

我不知道出了什么问题。这是我的 JSON 响应的样子:

{
  "payload": {
    "google": {
      "expectUserResponse": false,
      "richResponse": {
        "items": {
          "simpleResponse": {
            "textToSpeech": "test speech"
          }
        }
      }
    }
  },
  "fulfillmentText": "fulfillment test"
}

谢谢!

标签: phpjsondialogflow-esactions-on-google

解决方案


它适用于 Dialogflow 测试区域,因为它只测试响应的 Dialogflow 部分。它忽略平台特定payload区域下的任何内容。

您的有效负载包含一个小错误。的items属性richResponse应该是一个项目对象数组,即使您只发送一个。

所以你的 JSON 的那部分应该看起来更像:

  "richResponse": {
    "items": [
      {
        "simpleResponse": {
          "textToSpeech": "test speech"
        }
      }
    ]
  }

推荐阅读