广告位填充实体无法完全实现

时间:2019-01-06 19:47:51

标签: dialogflow actions-on-google

dialogflow / node.js后端出现了一个奇怪的问题。

在Dialogflow中,我有两个实体“ color”和“ order_amount”。我在意图内将实体设置为必填。但是只有一个必需的实体发送回我的后端,而另一个则未定义。虽然两者都在dialogflow中收到。

app.intent('Default Welcome Intent - yes', (conv, {product_color}, {order_amount}) => {

    console.log({product_color});
    console.log({order_amount});
    conv.ask(`Top. In welke maat?`);

});

因此,例如,当此意图运行时,将在dialogflow中完成插槽填充。但是我仅定义了第一个实体,例如{color}和{order_amount}未定义。当我切换{product_color}和{order_amount}时,如下例所示。然后product_color未定义。

app.intent('Default Welcome Intent - yes', (conv, {order_amount}, {product_color})

有人知道发生了什么吗?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

问题是您要破坏JavaScript。第二个功能参数包含具有所有Intent参数的对象。 JavaScript中的{name1}语法将对象属性名称映射到变量。所以您可以将行改写为

app.intent('Default Welcome Intent - yes', (conv, {product_color,order_amount})