3

我在 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.

4

1 回答 1

1

您可以使用Web Simulator获得更多调试信息。执行上述相同步骤,但在使用gactions命令预览操作后,导航到Web 模拟器并输入您在命令行模拟器中输入的相同文本。这将填写debugInfoJSON 响应中的字段。

于 2016-12-11T23:00:44.107 回答