在重定向到跟进事件之前返回响应

时间:2018-11-30 20:39:03

标签: dialogflow actions-on-google

我的用例是我想向用户提供提醒选项。所以,...

  • 代理商:“您要我提醒您吗?”
  • 用户:“是”
  • 特工:“要多少分钟?”
  • 用户:“ 10”
  • 代理商:“太好了,我已经设置好您的提醒了。”
  • [10分钟过去]
  • 特工:“叮!时间到了。”

我正在设置提醒时间并以确认响应进行响应,但是在弄清楚如何调用函数来检查时间方面遇到了挑战,这不是用户触发的意图。

我一直在追求使用conv.followup(),但是我从AoG文档中得到的是,单个请求将被发送回一个响应,并且只有在执行指定的后续事件之后才这样做。因此,这不可能实现意图:

  1. 设置提醒时间值
  2. 回复确认
  3. 提醒时间超时
  4. 回复警报

this线程的末尾,有一些变通方法的讨论,但是对我没有多大帮助。

任何见解,特别是代码示例,都将非常有帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

这种方式不可能做到。

仅根据用户操作(通常是他们所说的话)触发意图。 conv.followup()在极少数情况下使用-触发另一种Intent,该Intent可有效替换当前正在处理的Intent。

听起来您更想要push notification。但是,这有一些限制,最明显的是您目前只能向移动设备发送通知,而不能向智能扬声器发送通知。

虽然还有其他一些选择,但它们可能甚至不受欢迎(至少对于您的用户而言)。

您不能仅在相关时间触发另一个事件。实际上,这就是通知方法的作用。

请记住,您的Webhook必须在大约5秒钟内返回答复,在此之后,所有其他答复都将被忽略。解决此问题的一种方法是发送Media Response播放一段时间的音频(甚至是无声音频)。媒体播放完毕后,它将自动触发您的操作事件。这样,您可以检查是否已达到警报时间,如果没有,请发送另一个媒体响应。

但是,后一点有很多缺点。用户可以轻松中断媒体播放并取消播放-在这种情况下,您永远不会收到重新请求。同时,您的用户也无法将助手用于其他任何用途。