当我在google和API.AI代理上创建操作时,我使用自己的服务来实现API.AI。我希望API.AI会打电话给我的web钩子。但是,当我在google上用动作模拟器测试它时,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"
}
但是当我检查apache的日志时,API.AI并没有调用我的web钩子!当我将web钩子url替换为firebace函数时,它的工作就成功了。但是,如果我使用自己的服务url作为API.AI web钩子url,API.AI无论如何也不会调用web钩子。我的服务使用https。
发布于 2017-09-28 01:10:58
好吧,我解决了问题。原因是https的配置。它应该在ssl选项中添加ca。解决方案的详细信息请参阅链接:https://discuss.api.ai/t/webhook-does-not-work-with-https/6708/8
发布于 2018-08-08 22:50:37
我也有这个问题,我可以设法解决它。下面的错误细节在某种程度上误导了我们
"status": {
"code": 206,
"errorType": "partial_content",
"errorDetails": "Webhook call failed. Error: Webhook response was empty."
}
实际问题是另一回事。我添加了来自web钩子的输出上下文,并且上下文名称无效(它有一个名称中的空格)。这导致了上面的错误信息。
通常情况下,当来自web钩子的响应格式无效时,就会收到上面的错误消息。
希望它能对未来的人有所帮助。
发布于 2019-12-04 18:14:07
@dmulter有时,如果您的帐户超过其配额限制,那么也将响应Web钩子失败。
https://stackoverflow.com/questions/46460190
复制