Dialogflow-在给定的延迟后添加followupEvent

时间:2019-07-16 10:22:10

标签: node.js dialogflow

我试图在意图处理程序中添加一系列响应,并将计时器设置为20分钟,这将触发(在结束时)跟踪事件。

这就是我尝试过的:

agent.add(response_1);
//...
agent.add(response_n);
setTimeout(() => {
        console.log("Setting follow up event")
        agent.setFollowupEvent('20_MINUTES_PASSED');
      }, 1200000);

即使显示了日志,我的函数执行仍在此之前停止。我检查了日志,并看到“设置跟进事件”之前显示的消息“函数执行耗时26 ms,状态代码为200:”。

我知道每个功能都有3-5秒的超时时间,这就是为什么该功能完成执行的原因,但是我无法弄清楚在那20分钟后如何触发该事件...

1 个答案:

答案 0 :(得分:0)

这个想法有两个问题:云功能并不是要运行那么长时间,为此您必须使用真实的服务器或某些调度服务。但是,Dialogflow仍然不允许您这样做,webhook请求在几秒钟后超时。如果您尚未发送答复,则代理将告诉用户您的服务不可用。您也不能在没有用户明确请求的情况下发起新会话,这大概是因为开发人员会迅速将其滥用为垃圾邮件等。因此,在20分钟后无法触发事件。

最接近您所寻找的内容可能是push notifications,但与跟进事件相比,它们非常有限。