我在 Google webhook (Actions SDK) 上部署了一个 Actions,并使用模拟器与之交互。但是,我收到错误消息:“操作:操作名称现在没有响应。请稍后再试。” 如何解决此问题?
这些是我为产生此错误而采取的步骤。
部署网络钩子。我验证它是可公开访问的,使用 HTTPS,并且能够处理示例请求。它还设置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 响应。
可以做些什么来调试这个问题?
在旁注中,看起来我收到的实际请求与文档不太匹配。这是一个实际请求的示例:
{"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
是一个整数,而不是字符串。此外,没有conversation_token
提供,因此,conversation_token
我生成的响应中是null
.