我有一个与Silly Name Maker webhook example非常相似的Google Action(使用API.AI) .
但是,由于以下原因,我的应用被拒绝:
您的一项或多项操作不允许用户轻松退出对话 . 如果用户要求取消或退出,请确保您不会继续与用户交谈 . 当您说麦克风打开时停止,取消或退出时,它会响应“当然,取消”,关闭麦克风并退出 . 但是,当您在座席发言时尝试使用这些命令时,它会关闭麦克风并退出,但它并没有按照预期说“当然,取消” .
我的动作设置如下:
-
Welcome intent: 要求用户提供两个参数
-
Webhook response: 一旦提供了所有参数,webhook(结构化exactly like this Silly Name Maker webhook)将发送一个句子,然后立即结束对话 .
在欢迎意图期间,如果用户在座席发言时说“Okay Google,取消”,则会响应“Sure,cancelled”并退出 .
但是,当代理正在发出webhook响应时(来自 assistant.tell()
),如果你说"Okay Google, cancel"它将立即退出而不说"Sure, canceled."
How do I get the Google Assistant to say "Sure, canceled"? 我是否必须在API.AI中设置"cancel"意图,并在我的webhook上使用actionMap来处理用户的请求?
3 回答
使用assistant.ask(),不说,然后取消应该工作 . 你可以看看https://github.com/actions-on-google/actions-on-google-nodejs/blob/master/assistant.js
我知道这是一个老问题,但我仍然有一个答案 .
如果需要,您可以捕获用户的“取消”类型请求,以播放您自己的“再见”消息,因为您的黄色突出显示的请求似乎需要 . (这是评论反馈吗?很奇怪......)
如下所述:https://developers.google.com/actions/assistant/app-exits
基本技巧是在Dialogflow中设置为“actions_intent_CANCEL”的“事件”配置的Intent .
将其设置为“结束对话”(或者我认为它不起作用) .
不要设置任何示例短语 .
设置所需的“响应”,或将其设置为点击您的webhook .
通过该设置,您可以获得“取消”请求,在应用程序退出时说出您想要的任何内容,最多可达60个字符(允许用户快速退出) .
目前,当您从自定义应用程序内部执行app.tell()时,无法打开麦克风 . 所以,没有办法打断响应 .
只有短语“ok google”才能打开麦克风 . 所以你可以添加用户说“ok Google”来实现你的目标 . 这样您就可以处理自己应用中的中断 .