Dialogflow无法解析来自Google Apps脚本的Webhook响应

时间:2018-06-27 14:15:01

标签: google-apps-script webhooks dialogflow

当我尝试将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

1 个答案:

答案 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));
}