首页 > 解决方案 > 我的 Action 和 webhook 作为草稿运行良好,但在提交到生产环境后失败

问题描述

我为 Google 创建了一个 Action on Actions。它使用 Dialogflow 处理输入,并由 PHP webhook 提供支持。PHP 脚本由第三方托管服务提供商托管。我正在使用 Dialogflow API 的 v2。

该代理在 Dialogflow 中成功运行,没有任何问题。

最初,在 Google 模拟器上的 Actions 中进行测试时,它运行良好。

提交我的行动草案以供审查后,生产版本不起作用。但是,恢复到草稿版本后,它仍然可以正常工作。因此,我的评论提交被拒绝。

在控制台模拟器的错误选项卡中,它告诉我“必须设置 MalformedResponse 'final_response'”。在“响应”选项卡中,它显示以下响应:

在此处输入图像描述

我一直在联系支持人员,他们提供了以下建议:

  1. 清除我的缓存并重试

    • 毫不奇怪,这没有任何区别
  2. 从脚本中删除身份验证

    • 服务器身份验证已到位
    • 在 Dialogflow 中配置了凭据,并且可以访问 webhook
    • 这似乎不是问题,但是我已经从脚本中删除了身份验证并从 Dialogflow 中删除了凭据
  3. Webhook 正在返回一个空响应

    • 它不是。上面提供了 JSON 响应的示例(此时它只提供了fulfillmentText)
  4. 响应需要包含 Google 有效负载

    • 添加了现在将 textToSpeech 和 displayText 作为 simpleResponse 传递的 Google 有效负载
  5. 检查您使用的是 API 的 v2

    • 我是,这是在 Dialogflow 中设置的
  6. 可能是此已知问题的结果

    • 但是,根据我收到的混合消息,我不相信是这种情况

是否有人对可能导致该问题的其他原因有任何想法或建议?

标签: actions-on-google

解决方案


首先,确保您为所有意图启用了 webhook,并确保如果您的履行有承诺,请确保返回承诺。或者,如果您没有使用履行 webhook,那么您需要确保为这些意图定义了静态默认响应。您可以在Dialogflow 文档中阅读有关所有这些内容的更多信息。


推荐阅读