定期触发Dialogflow事件

lzm*_*ico 8 bots facebook-messenger-bot dialogflow-es

我希望我的Dialogflow机器人通过Cronjob发送定期消息。我可以通过/ query端点触发一个事件来做到这一点。但是,我不确定如何获取sessionId。如果我通过了使用的最后一个sessionId,则响应会成功返回,但对话中没有消息。API是否完全支持此模式?我所有的sessionId都来自Facebook Messenger客户端的同一实例

Kom*_*mol 0

您绝对应该使用Facebook Messenger Broadcast API来实现此类功能。这会将您的消息广播给订阅该机器人的所有用户,您可以将其作为 CRON 作业执行。

SessionID 发送可以工作,但会变得笨拙,尤其是当机器人上有很多用户时。

注意事项:

  1. 您必须申请此许可。(pages_messaging和pages_messaging_subscriptions。大约需要1-2天,但可以在应用程序的管理员/测试用户上进行测试)
  2. 每个广播必须是单独的广播。(例如,您不能同时发送图像和文本,每个图像和文本都必须是其自己的单独广播)。
  3. 还有某种取消订阅选项。即使您在消息中明确表示您的机器人将发送更新,FB 用户也可能会认为您在发送垃圾邮件。
  4. 使用自定义标签创建有针对性的发送。因此,您可以细分要向哪些人发送有关特定问题的更新,或者只是标记人员是否取消订阅您的广播。

基本工作流程:

  1. 获得广播许可。
  2. 通过 POST 到端点创建 message_creative_id
  3. 使用 message_creative_id 发布广播消息
  4. 发送成功后您将得到broadcast_id