当我尝试将Webhook响应从Google Apps脚本传递给Dialogflow时,出现以下错误。 Full debug log。
Webhook call failed. Error: Failed to parse webhook JSON response:
Expect message object but got: \\\"<HTML>\\\
这是我的Google Apps脚本的摘录。
function doPost(e) {
var myData = JSON.parse(e.postData.contents);
...
...
var replyJSON = ContentService.createTextOutput(JSON.stringify(result)).setMimeType(ContentService.MimeType.JSON);
return replyJSON;
}
我已经用Postman检查我的Google Apps脚本是否返回JSON(是)。
{
"fulfillmentText": "Hello",
"fulfillmentMessages": [{
"text": {
"text": [
"Hello"
]
}
}],
}
我遵循了Dialogflow v2 API documentation来正确格式化响应JSON。
我不知道怎么了。我不知道它如何接收HTML文件而不是JSON。创建自定义Webhook响应并不难,但是Dialogflow文档是 糟糕 。
任何帮助将不胜感激。
编辑: Google Web App已发布,可以匿名使用。
编辑编辑: 来自Stackdriver的更多logs。
答案 0 :(得分:0)
我认为这不是重定向问题。处理后,JSON可能格式错误(省略的行)。尝试测试doPost作为回声,以查看其是否有效:
function doPost(e) {
var content = JSON.parse(e.postData.contents);
return ContentService
.createTextOutput()
.setMimeType(ContentService.MimeType.JSON)
.setContent(JSON.stringify(content));
}