2

我有一个与Silly Name Maker webhook 示例非常相似的 Google Action(使用 API.AI)。

但是,我的应用因以下原因被拒绝:

您的一项或多项操作不允许用户轻松退出对话。如果用户要求取消或退出,请确保您不要继续与他们交谈。

当您在麦克风打开时说停止、取消或退出时,它会响应“当然,已取消”,然后关闭麦克风并退出。但是,当您在代理讲话时尝试使用这些命令时,它会关闭麦克风并退出,但不会按预期说“当然,已取消”。

我的 Action 是这样设置的:

  1. 欢迎意图:要求用户提供两个参数
  2. Webhook 响应:一旦提供了所有参数,webhook(结构与此 Silly Name Maker webhook 完全相同)提供一个句子,然后立即结束对话。

在欢迎意图期间,如果用户在代理说话时说“Okay Google,取消”,它会响应“当然,取消”并退出。

但是,当代理说出 webhook 响应(来自assistant.tell())时,如果您说“Okay Google,cancel”,它将立即退出而不说“Sure,cancel”。

如何让 Google 助理说“确定,已取消”?我是否必须在 API.AI 中设置“取消”意图,并在我的 webhook 上使用 actionMap 来处理用户的请求?

4

3 回答 3

0

使用 assistant.ask(),不告诉,然后取消应该工作。你可以看看https://github.com/actions-on-google/actions-on-google-nodejs/blob/master/assistant.js

于 2017-02-07T00:36:31.660 回答
0

目前,当您在自定义应用程序中执行 app.tell() 时,无法打开麦克风。因此,没有办法中断响应。

只有短语“ok google”打开了麦克风。因此,您可以添加用户说“ok Google”来满足您的需求。这样您就可以在自己的应用程序中处理中断。

于 2018-05-15T17:51:53.403 回答
0

我知道这是一个老问题,但我有一个答案。

如有必要,您可以捕获来自用户的“取消”类型请求,以播放您自己的“再见”消息,因为您的黄色突出显示的请求似乎想要。(这是评论反馈吗?奇怪...)

如此处所述: https ://developers.google.com/actions/assistant/app-exits

基本技巧是在 Dialogflow 中设置一个为“actions_intent_CANCEL”的“事件”配置的 Intent。

将其设置为“结束对话”(或者我认为它不起作用)。

不要设置任何示例短语。

设置所需的“响应”,或将其设置为点击您的 webhook。

使用该设置,您可以获得“取消”请求以在应用退出时说出您想要的任何内容,最多 60 个字符的限制(以允许用户快速退出)。

于 2018-05-15T16:12:34.343 回答