我想在使用行动SDK一个谷歌的行动会议结束征求用户反馈。
由于每个动作的文档(https://developers.google.com/actions/assistant/conversation-exits),我已经设置了取消意图
"conversations" : {
...
"inDialogIntents": [
{
"name": "actions.intent.CANCEL"
},
...
在我的功能代码我打电话一SimpleResponse
如下:
app.intent('actions.intent.CANCEL', (conv, input) => {
conv.close(new SimpleResponse({
speech: 'Kindly rate between 1 and 5,
text: 'Rate between 1 and 5'
}));
});
当用户说goodbye
,上面的代码被调用。语音的一声和文本显示,但谈话立即用耳标退出。
说明文档中提到,该系统将等待2秒钟退出之前,但它似乎立即这样做。有没有办法得到这个工作?谢谢
这不是很清楚,我要达到的目标。首先,只要你使用conv.close()
方法,你结束了谈话。如果你想保持麦克风打开时,你需要使用conv.ask()
方法。但我不知道ID,您可以使用conv.ask()
与actions.intent.CANCEL,因为该事件是那里得到用户的,不保持对话。但我不是100%肯定,你需要尝试它。
如果你想达到什么是这样的:
网友:取消
系统:你如何评价我们的互动?
网友:好。
耳标
然后,在我的愚见,你可能不应该(和我说你可能不能)做到这一点。该文档明确规定,自定义退出行为的目的是:
清理你的履行的逻辑和响应用户最后一次。
此外,该文档不说,该系统将等待2秒用户响应。它说,该请求(为您完成超时)的执行时间为2秒。加;如果用户取消中间的谈话,很可能相互作用是不成功的反正。我宁愿创建连接到备用意图和快乐路径(S)反馈对话框圈。
尽管如此,尽量改用conv.ask()
,让我知道是否可行。 (并请让我知道发表评论。)这两种情况,不过,我会考虑让反馈一些其他的方式。