javascript - 如何在发送到 DialogFlow 前 Api.ai 的请求 JSON 中添加额外字段

标签 javascript json dialogflow-es

我正在尝试将额外信息附加到 从我的应用程序发送到 DialogFlow 的请求。我知道可以通过触发来自 Sending Parameters in a Query Request 的事件来发送调用意图的数据。 ,并且我已经将该方法用于其他功能。

基本上,我正在尝试使用 userID 添加一个值,并且我需要在 DialogFlow 中检索该值。我正在跟踪 中的 session ,所以我使用 获取ID值。我尝试在 中执行以下操作请求:

$.ajax({
  type: "POST",
  url: baseUrl + "query?v=20150910",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  headers: {
    "Authorization": "Bearer " + accessToken
  },
  //This folllowing line is the modified part:
  data: JSON.stringify({
    query: text,
    lang: "en",
    sessionId: "somerandomthing",
    userId: "100"
  }),
  success: function(data) {

  },
  error: function() {
    setResponse("Internal Server Error");
  }
});

还有这个:

$.ajax({
  type: "POST",
  url: baseUrl + "query?v=20150910",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  headers: {
    "Authorization": "Bearer " + accessToken
  },
  //This folllowing line is the modified part:
  data: JSON.stringify({
    query: text,
    lang: "en",
    sessionId: "somerandomthing",
    userId: "100",
    parameters: {
      userId: "100"
    }
  }),
  success: function(data) {

  },
  error: function() {
    setResponse("Internal Server Error");
  }
});

我需要请求中的该值来基于它在后端中处理一些数据。如果有人知道如何做到这一点,或者有更好方法的建议,我们将不胜感激。

DialogFlow 论坛中有与此相关的讨论帖子,但仍然没有解决方案。该功能可能不可用,或者未记录Link 1 , Link 2 , Link 3 .

最佳答案

我在 Dialogflow 的 @Svetlana 的帮助下解决了这个问题。原帖为Here ,下面是一个来自 Node.js 后端的 JavaScript 应用程序的示例:

您的请求格式应如下所示:

            $.ajax({
                type: "POST",
                url: baseUrl + "query?v=20150910",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                headers: {

                    "Authorization": "Bearer " + accessToken
                },
                data: JSON.stringify({originalRequest: {data: {exampleMessage: 'Test'}}, query: text, lang: 'en', sessionId: 'somerandomthing'}),
                success: function (data) {

                },
                error: function () {
                    setResponse("Internal Server Error");
                }
            });

您可以通过以下方式访问 webhook 中的值:

var exampleMessage = req.body.originalRequest.data.exampleMessage;

var exampleMessage = req.body.originalRequest.data['exampleMessage'];

希望这有帮助。

关于javascript - 如何在发送到 DialogFlow 前 Api.ai 的请求 JSON 中添加额外字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47342817/

相关文章:

javascript - 动态添加行到表体

javascript - 将图像附加到 dhtmlx 窗口

machine-learning - Dialogflow 中的意图限制可以增加吗?

node.js - 获取后续意图中与原始意图不匹配的参数值

javascript - 可以改变php参数吗?从 Controller

java - 如何为单个引擎实例设置 java-8 Nashorn javascript 引擎选项

MYSQL存储过程迭代Json数组数据

java - 如何向创建的 GSON 添加属性到 JSON?

dialogflow-es - 在 dialogflow-fulfillment 中访问先前的跟进意图参数

javascript - 如何在 iMacros 脚本中重复?