首页 > 解决方案 > 如何在@assistant/conversation 中关闭对话

问题描述

我创建了一个云函数来处理一些我想关闭对话的逻辑。

我尝试了以下方法,但我收到一个错误,指出对话中没有名为 close 的方法

conv.close('Thankyou');

我检查了@assistant/conversation的文档,其中没有关闭对话的方法

在此处输入图像描述

我想知道如何从云功能关闭对话以及是否可以使用云功能中的系统场景,例如

要结束场景中的对话,我们将过渡到结束对话场景。同样在云功能中我们可以使用它吗

conv.scene.next.name = 'End conversation'

对于我们创建的自定义场景,它可以正常工作,但如果我们尝试使用云功能中的系统场景,它会失败。

标签: actions-on-googleactions-builder

解决方案


直接过渡到退出的最简单方法是使用特殊的“结束对话”场景名称:actions.page.END_CONVERSATION.

然而,另一种合理的方法是过渡到场景,场景所做的主要事情过渡到结束对话。由于您不能作为条目消息的一部分进行转换,因此您需要创建一个“真”的条件。

出口场景图解

这似乎是一种不必要的 hack,但这并不像听起来那么疯狂——对于某些 Action,有一个共同的关闭和清理过程是有意义的,并将它们集中在一个合乎逻辑的地方是有意义的。


推荐阅读