1

我想拦截来自 dialogflow messenger CX 的请求并通过 queryParams 向 responseBody 添加参数,我已阅读文档但不清楚如何使用 javascript 事件添加新参数。我知道有一个事件被调用df-request-sent,但文档没有显示如何在事件中发送新参数。我搜索了类似的问题,但没有找到信息。

我正在使用下一个文档:https ://cloud.google.com/dialogflow/cx/docs/concept/integration/dialogflow-messenger#df-request-sent

代码是:

         const dfMessenger = document.querySelector('df-messenger')
         dfMessenger.addEventListener('df-request-sent', function (event) {
             console.log(event)
             // how to send the new parameters?
         })

我曾尝试更改 event.detail 的值,但没有奏效。

有人知道怎么做吗?

谢谢你的帮助。

4

1 回答 1

2

不幸的是,无法在 Dialogflow Messenger 事件的 df-request-sent 的 queryParams 上添加参数。请注意,当向 Dialogflow API 发出请求时会发生此事件,我们无法编辑事件结构,因为这取决于 Dialogflow Messenger 的 detectIntent 请求。

作为一种解决方法,您可以使用自定义集成。您可以利用 Dialogflow CX 的客户端库REST APIRPC API创建自己的实现/集成。然后,您可以在您的detectIntent请求中添加参数。

以下是 detectIntent 请求正文的示例:

{
  "queryInput": {
     "text": {
        "text": "Hi"
     },
     "languageCode": "en"
  },
  "queryParams": {
     "timeZone": "America/Los_Angeles",
     "parameters": {
         //set your parameters here
     }
  }
}
于 2021-04-28T23:38:00.783 回答