如何摆脱有效负载中的“空”节点(实现响应)?

时间:2019-05-16 20:43:57

标签: node.js dialogflow

我正在使用dialogflow-fulfillment来实现目标。我正在尝试使用以下功能发送有效载荷;

function getName(agent) {
        let options = {
          "options": [
                {
                    "id": "make_reservation",
                    "text": "Reservations",
                    "payload": "make_reservation"
                  }
            ]
        };

        let newPayload = new Payload('PLATFORM_UNSPECIFIED', options);
        agent.add('added by webhook');
        agent.add(newPayload);
}

但是我在履行响应中得到了一个null节点。

{
  "payload": {
    "null": {
      "options": [
        {
          "id": "make_reservation",
          "text": "Reservations",
          "payload": "make_reservation"
        }
      ]
    }
  },
  "outputContexts": []
}

null节点的位置,我需要一个options节点。知道怎么做吗?

谢谢

1 个答案:

答案 0 :(得分:0)

进行更多搜索后,我得到了答案! Payload具有三个参数。

new Payload(platform, payload, options);

,默认选项为{sendAsMessage: false, rawPayload: false}。由于rawPayloadfalse,因此有效负载将嵌套在platform名称上。在我的情况下,platformPLATFORM_UNSPECIFIED,这就是为什么它嵌套在null节点上的原因。

因此解决方案是将rawPayload设置为true

let newPayload = new Payload('PLATFORM_UNSPECIFIED', options, {rawPayload: true});