我试图在意图处理程序中添加一系列响应,并将计时器设置为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分钟后如何触发该事件...
答案 0 :(得分:0)
这个想法有两个问题:云功能并不是要运行那么长时间,为此您必须使用真实的服务器或某些调度服务。但是,Dialogflow仍然不允许您这样做,webhook请求在几秒钟后超时。如果您尚未发送答复,则代理将告诉用户您的服务不可用。您也不能在没有用户明确请求的情况下发起新会话,这大概是因为开发人员会迅速将其滥用为垃圾邮件等。因此,在20分钟后无法触发事件。
最接近您所寻找的内容可能是push notifications,但与跟进事件相比,它们非常有限。