我希望我的Dialogflow机器人通过Cronjob发送定期消息。我会通过/ query端点触发事件来做到这一点。但是,我不知道如何获得 sessionId 。如果我传递了最后使用的 sessionId ,则响应成功返回,但在对话中我没有收到任何消息。 API是否支持这种模式?我的所有sessionId都来自Facebook Messenger客户端的同一个实例
答案 0 :(得分:0)
您绝对应该使用Facebook Messenger Broadcast API来实现此类功能。这会将您的消息广播给订阅该机器人的所有用户,您可以将其作为CRON作业执行。
会话ID发送有效,但是如果你在机器人上有很多用户的话,它会变得笨拙。
注意事项:
基本工作流程:
答案 1 :(得分:0)
Dialogflow目前不支持主动消息传递,会话ID由Dialogflow生成,并且仅在发送最后一条消息后20分钟处于活动状态。
主动向用户发送消息的唯一方法是使用您在Dialogflow中配置的相同的Facebook Messenger身份验证信息,向想要通知的用户发送Facebook消息。当用户响应时,请求将转到Dialogflow,而Dialogflow代理将响应并继续对话。