如何在 google 操作日志中获取堆栈跟踪,因为必须设置 'final_response' 是无用的
How to get stack trace in google actions logs, because 'final_response' must be set is useless
google 上的操作调试非常糟糕。唯一有用的做法是在 Dialogflow 测试控制台 中进行调试,因为在那里您可以准确地看到哪里出错了。但是在这里你只是得到这个 MalformedResponse: 'final_response' must be set. 有没有办法打印出来 console.log 所以您至少可以在 Logs Viewer 中看到哪些已通过,哪些未通过?
因为从这里,除了 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"
如果您收到此错误,有很多地方需要调查。
首先检查明显的 - 您的 Intent 已启用实现。在 Intent 的底部,确保 "Enable webhook call for this intent" 已打开。
如果您对此有把握,请检查您的 webhook 的日志。您尚未指定 Webhook 运行ning 的方式或位置,因此我无法提供详细指导,但如果您使用的是内置编辑器的 Dialogflow,则可以查看 Firebase 中的日志。确保没有抛出错误。
我经常 运行 在本地测试(使用 firebase serve --only functions
)并使用 ngrok 提供安全隧道。 ngrok 还提供了一个协议检查器,可以让您查看发送回 Dialogflow 的响应。
如果仍有问题,您可能希望打开 Dialogflow 日志记录到 Google 云。这是在设置屏幕上(在您的项目的齿轮图标下)和底部。默认情况下它是关闭的 - 打开它,您可以按照那里的 link 查看日志在哪里。这将向您显示发送到您的 fulfillment 的内容以及您收到的内容。
大部分信息也位于 Google 模拟器上的操作中的 "Response" 和 "Debug" 选项卡中。如果您仍然需要帮助,也可以在那里查看(或 post 他们在 Whosebug 上)。
使用 Dialogflow 模拟器不足以调试 Actions - AoG 环境会发送 Dialogflow 模拟器不会发送的额外信息。
google 上的操作调试非常糟糕。唯一有用的做法是在 Dialogflow 测试控制台 中进行调试,因为在那里您可以准确地看到哪里出错了。但是在这里你只是得到这个 MalformedResponse: 'final_response' must be set. 有没有办法打印出来 console.log 所以您至少可以在 Logs Viewer 中看到哪些已通过,哪些未通过?
因为从这里,除了 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"
如果您收到此错误,有很多地方需要调查。
首先检查明显的 - 您的 Intent 已启用实现。在 Intent 的底部,确保 "Enable webhook call for this intent" 已打开。
如果您对此有把握,请检查您的 webhook 的日志。您尚未指定 Webhook 运行ning 的方式或位置,因此我无法提供详细指导,但如果您使用的是内置编辑器的 Dialogflow,则可以查看 Firebase 中的日志。确保没有抛出错误。
我经常 运行 在本地测试(使用 firebase serve --only functions
)并使用 ngrok 提供安全隧道。 ngrok 还提供了一个协议检查器,可以让您查看发送回 Dialogflow 的响应。
如果仍有问题,您可能希望打开 Dialogflow 日志记录到 Google 云。这是在设置屏幕上(在您的项目的齿轮图标下)和底部。默认情况下它是关闭的 - 打开它,您可以按照那里的 link 查看日志在哪里。这将向您显示发送到您的 fulfillment 的内容以及您收到的内容。
大部分信息也位于 Google 模拟器上的操作中的 "Response" 和 "Debug" 选项卡中。如果您仍然需要帮助,也可以在那里查看(或 post 他们在 Whosebug 上)。
使用 Dialogflow 模拟器不足以调试 Actions - AoG 环境会发送 Dialogflow 模拟器不会发送的额外信息。