在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"
答案 0 :(得分:1)
有很多地方可以调查是否出现此错误。
首先检查显而易见的内容-您的意图已启用。在Intent的底部,确保已启用“为此意图启用Webhook调用”。
如果对此有把握,请检查Webhook的日志。您尚未指定运行Webhook的方式或位置,因此我无法提供详细的指导,但是如果您使用内置的Dialogflow编辑器,则可以在Firebase中签出日志。确保没有引发错误。
我经常在本地运行测试(使用firebase serve --only functions
),并使用ngrok提供安全的隧道。 ngrok还提供了一个协议检查器,使您可以查看发送回Dialogflow的响应。
如果仍然有问题,您可能希望打开Dialogflow到Google Cloud的日志记录。这在设置屏幕上(在项目的齿轮图标下),并在底部。默认情况下它是关闭的-启用它,然后您可以单击那里的链接查看日志的位置。这将向您显示发送给您的成就和返回的成就。
许多此类信息也位于Google模拟器上的“响应”和“调试”标签中。如果您仍需要帮助,也可以在此处查看(或将其发布在StackOverflow上)。
使用Dialogflow模拟器不足以调试Actions-AoG环境会发送Dialogflow模拟器无法提供的其他信息。