Google Action返回空语音响应

时间:2018-08-01 16:51:07

标签: actions-on-google dialogflow

我从我的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"  
}

2 个答案:

答案 0 :(得分:1)

在没有看到您的所有Intent和实现中使用的代码的情况下,诊断问题非常困难,但是在这种情况下需要注意以下几点:

  • 请确保您的Intent在“响应”部分中设置了“响应”,或者说要使用实现Webhook的开关已打开。

  • 确保您的Intent都在webhook中具有应该返回某些内容的功能。

  • 如果要进行异步调用(例如,对在其他服务器上运行的API的调用),请确保您正在使用Promises,并且将Promise作为Intent处理程序的一部分返回。

    < / li>
  • 检查Webhook的日志。确保运行时没有记录错误。如有必要,添加日志记录以确保您返回的是您想返回的内容。

  • 您可能希望在两者之间使用代理(例如ngrok)运行webhook,以便获取详细的请求和响应日志,并查看代码正发送回的确切JSON。

  • 打开Dialogflow的功能以登录到Google Cloud的StackDriver。

答案 1 :(得分:0)

尝试在Dialogflow集成中为Google助手启用V2。如果您的Dialogflow代理在合并时是旧的,请按照下面突出显示的部分进行启用。

enter image description here

如果这不起作用,请使用Dialogflow意图,设置,Webhook代码和客户端版本更新您的问题。