Google Assistant DialogFlow for Workout?

时间:2019-06-02 11:14:40

标签: javascript dialogflow actions-on-google google-home

我正在做一个简单的助手,除了启动命令字外没有其他任何交互。一旦开始,我想在一段时间后说出各种短语。

我目前正在尝试通过一些setTimeout()调用DialogFlow Fulfillment进行此操作,但是它没有启动例程。

  1. 我可以使用setTimeout()吗?如果没有,我该怎么用空格隔开这些语句
  2. 如何使用“履行”功能启动例行程序?

理想流量

  • 我说:“嘿,谷歌,开始很棒的锻炼”
  • Google说:“开始出色的锻炼”
  • Google说:“ Jacking Jacks,go”
  • 30秒后,Google说:“中断”
  • 15秒后,Google说:“俯卧撑,走”
  • 重复休息和做另外几次运动

2 个答案:

答案 0 :(得分:2)

似乎在实现中,您必须使用SSML标签。使用<break time=30</>间隔30秒钟或15秒钟。

请参阅SSML链接以实现:-https://developers.google.com/actions/reference/ssml

答案 1 :(得分:0)

Google和Dialogflow上的操作是对话式的-大多数交互是用户说出一些东西,AoG / Dialogflow进行答复,然后重复此过程。您无法在服务器上使用setTimeout(),因为答复已经发送完毕。

您的回复中可以包含SSML markup来做您想要的休息,但是您的回复仍然受到总时长(大约2分钟)的限制,并且可能比您想要的例行程序要短得多。

一种更好的方法是使用Media Response做事情。这使您可以发送一些文本,然后发送mp3音频。音频完成后,它将向您的服务器发送一条消息,您可以发送下一条指令(和音频)。这样做的缺点是时间安排不精确-您可以控制说话的时间长度和音频的持续时间,但是网络往返会有些滞后。