我在Google webhook(动作SDK)上部署了一个动作,我正在使用模拟器与它进行交互。但是,我收到错误消息:“操作:操作名称现在没有响应。请尽快重试。”我该如何解决这个问题?
这是我为产生此错误而采取的步骤。
部署webhook。我确认它可以公开访问,使用HTTPS,并且能够处理example request。它还设置Google-Assistant-API-Version
响应标头。
将action.json指向可公开访问的webhook,然后预览操作:
gactions --verbose preview --action_package=action.json -invocation_name="action name"
启动模拟器:
gactions --verbose simulate
模拟互动:
Finished checking for updates -- no updates available
Reading credentials from: creds.data
User TTS (CTRL-C to stop):
talk to action name
Sending POST request to: https://assistant.googleapis.com/v1/assistant:converse
Request body:
{
"query": "talk to action name"
}
Response body:
{
"response": "action name isn’t responding right now. Try again soon.\n",
"audioResponse": "...",
"debugInfo": {}
}
虽然该消息表明该操作没有响应,但我可以从我的webhook日志中看到它已成功响应HTTP状态代码200并且它生成的JSON响应与{{3}非常相似}。
如何调试此问题?
在旁注中,看起来我得到的实际请求与文档不完全匹配。以下是实际请求的示例:
{"user":{"user_id":"..."},"conversation":{"conversation_id":"...","type":1},"inputs":[{"intent":"assistant.intent.action.MAIN","raw_inputs":[{"input_type":2,"query":"talk to action name"}],"arguments":[]}]}
请注意conversation.type
是整数,而不是String。此外,未提供conversation_token
,因此,我生成的响应中的conversation_token
为null
。
答案 0 :(得分:1)
您可以使用Web Simulator获取更多调试信息。按照上述相同步骤操作,但在使用gactions
命令预览操作后,导航到Web Simulator并输入您在命令行模拟器中输入的相同文本。这将填写JSON响应中的debugInfo
字段。