为什么API.AI总是返回" Webhook调用失败。错误:Webhook响应为空。"

时间:2017-09-28 02:51:21

标签: webhooks actions-on-google dialogflow

当我在google project和API.AI代理上创建操作时,我使用自己的服务来成为API.AI实现webhook。我希望API.AI会调用我的webhook。但是当我通过谷歌上的动作模拟器测试它时,API.AI总是返回:

$.ajax({
  type: 'post',
  url: 'test.php',
  data: {
    divid: divid
  },
  success: function(response) {
    window.location.reload();
  }
});

但是当我检查apache的日志时,API.AI没有调用我的webhook!当我将webhook url替换为firebace功能时,它可以成功运行。但是,如果我使用自己的服务URL作为API.AI webhook url,API.AI无论如何都不会调用webhook。我的服务使用https。

3 个答案:

答案 0 :(得分:6)

我也遇到了这个问题,我可以设法解决。下面的错误详细信息以某种方式令人误解

"status": {
    "code": 206,
    "errorType": "partial_content",
    "errorDetails": "Webhook call failed. Error: Webhook response was empty."
  }

实际问题是另外一回事。我正在添加输出上下文,以响应Web挂钩,并且上下文名称无效(名称中有空格)。这是导致上面的错误信息。

通常,当来自网络挂钩的响应格式无效时,似乎会收到上述错误消息。

希望它将对以后的人有所帮助。

答案 1 :(得分:2)

好的,我解决了这个问题。原因是https的配置。它应该在ssl选项中添加ca.解决方案的详细信息请参见链接: https://discuss.api.ai/t/webhook-does-not-work-with-https/6708/8

答案 2 :(得分:0)

@dmulter有时,如果您的帐户超出其配额限制,则响应也会被Webhook失败。 enter image description here