php - “无法将 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"
}
谢谢!
解决方案
它适用于 Dialogflow 测试区域,因为它只测试响应的 Dialogflow 部分。它忽略平台特定payload
区域下的任何内容。
您的有效负载包含一个小错误。的items
属性richResponse
应该是一个项目对象数组,即使您只发送一个。
所以你的 JSON 的那部分应该看起来更像:
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "test speech"
}
}
]
}
推荐阅读
- python-3.x - 如何在 python 中设置堆栈驱动程序日志条目的严重性?
- pandas - 从 Pandas 的数据框列中删除特定对象类型的值
- java - 嵌套 if-else 语句的正确格式
- sql - WHERE a AND b 只返回 WHERE b
- github - Github 完整搜索历史
- typescript - 如何在 TypeScript 中基于另一个创建函数,但修复了一些模板参数
- amazon-web-services - 有没有一种简单的方法可以通过 boto3 重命名 s3 文件夹?
- javascript - 使用 vanilla JS 动态设置暗模式切换按钮
- r - 使用 rvest 登录网站后如何使用 R 注销网站
- windows - Windows 7 上 ImageMagick 中的括号用法