我从我的Google Action收到了此回复,但无法弄清为什么会发送空的回复。我的所有Intent似乎都具有正确的Webhook和所需的默认响应。
{
insertId: "hrf6g3f6f1zhg"
labels: {
channel: "production"
querystream: "GOOGLE_USER"
source: "AOG_REQUEST_RESPONSE"
}
logName: "projects/math-164823/logs/actions.googleapis.com%2Factions"
receiveTimestamp: "2018-08-01T13:05:42.164452044Z"
resource: {
labels: {
action_id: "assistant.intent.action.TEXT"
project_id: "math-164823"
version_id: ""
}
type: "assistant_action"
}
severity: "DEBUG"
textPayload: "Received response from agent with body: HTTP/1.1 200 OK
Server: nginx/1.13.6
Date: Wed, 01 Aug 2018 13:05:42 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 494
X-Cloud-Trace-Context: f0727cf8856a9fa6cbf1f0e861c14836/7685757289520895586;o=0
Google-Assistant-API-Version: v1
Assistant-Interaction-Error-Code: -1
Assistant-Interaction-Error-Message: Failed to parse Dialogflow response into AppResponse because of Empty speech response
Via: 1.1 google
Alt-Svc: clear
{
"responseMetadata": {
"status": {
"code": 10,
"message": "Failed to parse Dialogflow response into AppResponse because of Empty speech response",
"details": [{
"@type": "type.googleapis.com/google.protobuf.Value",
"value": "{\"id\":\"c132e91a-4918-4720-ae54-8deacd5bd59e\",\"timestamp\":\"2018-08-01T13:05:41.908Z\",\"lang\":\"en\",\"result\":{},\"status\":{\"code\":200,\"errorType\":\"success\"},\"sessionId\":\"1533128627128\"}"
}]
}
}
}."
timestamp: "2018-08-01T13:05:42.106660479Z"
trace: "projects/368086278893/traces/1533128627128"
}
答案 0 :(得分:1)
在没有看到您的所有Intent和实现中使用的代码的情况下,诊断问题非常困难,但是在这种情况下需要注意以下几点:
请确保您的Intent在“响应”部分中设置了“响应”,或者说要使用实现Webhook的开关已打开。
确保您的Intent都在webhook中具有应该返回某些内容的功能。
如果要进行异步调用(例如,对在其他服务器上运行的API的调用),请确保您正在使用Promises,并且将Promise作为Intent处理程序的一部分返回。
< / li>检查Webhook的日志。确保运行时没有记录错误。如有必要,添加日志记录以确保您返回的是您想返回的内容。
您可能希望在两者之间使用代理(例如ngrok)运行webhook,以便获取详细的请求和响应日志,并查看代码正发送回的确切JSON。
打开Dialogflow的功能以登录到Google Cloud的StackDriver。
答案 1 :(得分:0)