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})
有人知道发生了什么吗?
答案 0 :(得分:2)
我自己回答了。您可以使用“参数”:https://actions-on-google.github.io/actions-on-google-nodejs/classes/dialogflow.dialogflowconversation.html#parameters
答案 1 :(得分:1)
问题是您要破坏JavaScript。第二个功能参数包含具有所有Intent参数的对象。 JavaScript中的{name1}
语法将对象属性名称映射到变量。所以您可以将行改写为
app.intent('Default Welcome Intent - yes', (conv, {product_color,order_amount})