1

目前,我正在就假期进行建议对话。我们在 Firestore 中创建了一个包含所有可能假期的提要,包括报价的 URL。我们构建的函数在 Firestore 中搜索报价,然后将 URL 提供回 Dialogflow,以便将其发送给客户。

为了实现,我设置了以下响应:

  "followupEventInput": {
    "languageCode": "nl",
    "name": "Query-Result"
  },
     "parameters": [
      {
      "url": "$urlvalue"
    }
   ]
}

在 Stackdriver 中,我看到提供的响应中确实有一个 url 值:

{
 insertId: "bdzlmdg1foc8wt"  
 labels: {…}  
 logName: "projects/vakantiesnl-dev/logs/dialogflow_agent"  
 receiveTimestamp: "2020-05-14T09:17:51.034607137Z"  
 resource: {…}  
 severity: "INFO"  
 textPayload: "Dialogflow fulfillment response : {"followupEventInput":{"languageCode":"nl","name":"Query-Result"},"parameters":[{"url":"https://www.vakanties.nl/griekenland/kreta/malia/real-palace?departure=28-08-2020&flexibleDeparture=False&hotelId=229003&offer=28-08-2020|8|RTM|HER|GT06-AO|STSD00000PSC|STSD00000P|VAKNLB2C|0"}]}
"  
 timestamp: "2020-05-14T09:17:51.019Z"  
 trace: "944e1df4-5f91-4766-94dd-6cd4c47edbf7"  
}

但是,Dialogflow 不会将参数值检索到对话中。在意图中,我将参数设置如下:

查看 Dialogflow 意图中设置的参数的屏幕截图

在 Stackdriver 我看到 URL 的值确实是空的

      key: "url"
      value {
        string_value: ""
      }
    }

我的问题我需要做什么才能在对话中检索 url 值?

非常感谢您!

4

1 回答 1

0

看起来您正在将参数设置为具有事件集的 Intent 的一部分。这不是必需的,您可以使用#parameterName语法直接访问响应中的事件参数。

但是,一般来说,您也可以只使用您的履行来直接发回响应 - 您不需要转发到事件意图只是为了发送响应。

于 2020-05-15T09:34:57.473 回答