如何在 Dialogflow 的 webhook 响应中集成 Google 操作响应?

How can I integrate the Google Actions responses in a webhook response in Dialogflow?

我正在尝试弄清楚如何在 DialogFlow 的 webhook 响应中嵌入 Google 操作响应,例如 cards carousel

https://developers.google.com/actions/dialogflow/webhook上,我找到了以下信息:

Dialogflow webhook 的响应格式包含标准 Dialogflow webhook 响应内容和一个非常类似于标准对话 webhook 响应的 data.google 对象具有以下一般差异。

所以我尝试使用如下 data.google 结构扩展 webhook 响应:

{
   "fulfillmentText":"Please select any card you like.",
   "data":{
      "google":{
         ...
      }
   }
}

console 中测试时,出现以下错误:

Webhook 调用失败。错误:无法解析 webhook JSON 响应:找不到字段:消息中的数据 google.cloud.dialogflow.v2beta1.WebhookResponse.

查看definition of WebhookResponse,好像确实没有data字段。

我在兜圈子。我的问题基本上是:如何使用 Google 操作响应来丰富 Dialogflow webhook 响应?

Google 上的操作文档仍然引用 Dialogflow V1 协议文档,Google 中的 node.js 库仅支持 V1 协议。由于听起来您正在尝试使用 Dialogflow V2 Beta,因此您需要更改格式化 JSON.

的方式

与 V1 中使用 data.google 数据结构不同,V2Beta 使用 payload.google 字段(即一个 payload 对象具有 google 对象在里面)。 (请参阅 "Response" 部分下的 https://dialogflow.com/docs/fulfillment#requirements,然后单击 V2 选项卡。)

payload.google 字段将设置为与 data.google 字段的内容设置相同的内容。