如何在Google Actions日志中获取堆栈跟踪,因为必须设置'final_response'是没有用的

时间:2018-08-27 08:20:15

标签: debugging dialogflow actions-on-google

在Google上执行操作的调试非常麻烦。唯一有用的事情是如果您在 Dialogflow测试控制台中进行调试,因为在那里您可以准确地看到问题出在哪里。但是在这里,您只得到以下 MalformedResponse:必须设置'final_response'。有什么方法可以打印出 console.log ,以便至少可以在 Logs中看到查看器发生了什么,没有发生什么?

因此,除了conv.ask没有执行或我错过了什么以外,您什么都看不到哪里出了问题。

 insertId: "id"  
 labels: {
  channel: "preview"   
  querystream: "GOOGLE_USER"   
  source: "JSON_RESPONSE_VALIDATION"   
 }
 logName: "projects/0/logs/actions.googleapis.com%2Factions"  
 receiveTimestamp: "2018-08-27T08:01:46.632208192Z"  
 resource: {
  labels: {
   action_id: "actions.intent.TEXT"    
   project_id: "avant2goassistant"    
   version_id: ""    
  }
  type: "assistant_action"   
 }
 severity: "ERROR"  
 textPayload: "MalformedResponse: 'final_response' must be set"  
 timestamp: "2018-08-27T08:01:46.605934393Z"  
 trace: "projects/0/traces/0"  

1 个答案:

答案 0 :(得分:1)

有很多地方可以调查是否出现此错误。

首先检查显而易见的内容-您的意图已启用。在Intent的底部,确保已启用“为此意图启用Webhook调用”。

enter image description here

如果对此有把握,请检查Webhook的日志。您尚未指定运行Webhook的方式或位置,因此我无法提供详细的指导,但是如果您使用内置的Dialogflow编辑器,则可以在Firebase中签出日志。确保没有引发错误。

我经常在本地运行测试(使用firebase serve --only functions),并使用ngrok提供安全的隧道。 ngrok还提供了一个协议检查器,使您可以查看发送回Dialogflow的响应。

如果仍然有问题,您可能希望打开Dialogflow到Google Cloud的日志记录。这在设置屏幕上(在项目的齿轮图标下),并在底部。默认情况下它是关闭的-启用它,然后您可以单击那里的链接查看日志的位置。这将向您显示发送给您的成就和返回的成就。

enter image description here

许多此类信息也位于Google模拟器上的“响应”和“调试”标签中。如果您仍需要帮助,也可以在此处查看(或将其发布在StackOverflow上)。

使用Dialogflow模拟器不足以调试Actions-AoG环境会发送Dialogflow模拟器无法提供的其他信息。