1

我有一个名为 shirt_order 的页面,其中包含两个参数 shirt_size 和 shirt_color。

作为此页面的条目实现,如果机器人还不知道用户先前话语中的 shirt_size 和 shirt_color,我想要“好的,让我们订购一件衬衫。但首先我需要从你那里获得一些信息”。如果机器人已经从用户之前的话语中知道了 shirt_size 和 shirt_color(即,机器人将它们作为意图参数接收),机器人应该说“好的,让我们订购一件衬衫......幸运的是,我已经有了我需要的所有输入命令”。

所以我的计划是在 shirt_order 页面的 entry 实现中输入一个条件响应。在这种情况下,我想检查带有两个表单参数的表单是否已经填写如下:

if $page.params.status = "FINAL" ... I first need to have some inputs form you... else ... I already have all inputs... endif

但是条件$page.params.status = "FINAL"似乎总是错误的?!?!对$page.params.shirt_size.status = "UPDATED". 然后,我尝试仅$page.params.shirt_size在条目履行中输出文本,但该参数从未填充。

所以我有一种感觉,在某个页面的条目实现中,您无法引用同一页面的表单参数,因为在条目实现完成时表单参数还不存在。这是真的吗?这将是谷歌的设计很弱,对吧?

谢谢!

4

1 回答 1

1

Note that you can only use form status references in a condition requirement of a condition route.

For your use case, instead of using the $page.params.status or $page.params.parameter_name, you can use $session.params.parameter_name on creating your conditional response for your entry fulfillment:

if $session.params.shirt_color = null OR $session.params.shirt_size = null
   OK, let's order a shirt. But first I need to have some info from you
else
   OK, let's order a shirt... and luckily I already have all inputs that I need for the order
endif

Here are the results:

enter image description here

enter image description here

于 2021-06-28T06:36:36.697 回答