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

肖俊毅*_*肖俊毅 3 webhooks actions-on-google dialogflow-es

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

"message": "Unexpected apiai response format: Empty speech response",
"apiResponse": {
  "id": "905d5727-bea8-4630-8d3a-e6c173159a94",
  "timestamp": "2017-09-28T02:20:06.954Z",
  "lang": "en",
  "result": {},
  "status": {
    "code": 206,
    "errorType": "partial_content",
    "errorDetails": "Webhook call failed. Error: Webhook response was empty."
  },
  "sessionId": "1506565201634"
}
Run Code Online (Sandbox Code Playgroud)

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

pgc*_*can 6

我也遇到了这个问题,我可以设法解决它.以下错误详情在某种程度上具有误导性

"status": {
    "code": 206,
    "errorType": "partial_content",
    "errorDetails": "Webhook call failed. Error: Webhook response was empty."
  }
Run Code Online (Sandbox Code Playgroud)

实际问题是别的.我在web-hook的响应中添加了输出上下文,并且上下文的名称无效(名称中有空格).这导致上面的错误消息.

作为一般规则,当web-hook的响应格式无效时,将会收到上述错误消息.

希望它将来有助于某人.