【问题标题】:Send message to user periodically by using Api.ai使用 Api.ai 定期向用户发送消息
【发布时间】:2017-08-01 19:27:04
【问题描述】:

我正在使用 Api.ai 制作一个用于提供健康建议的聊天机器人。

我想每天向用户发送推荐的锻炼计划。但是 Api.ai 中的意图只能在用户说话时做出响应。

我应该通过使用事件来做到这一点吗?但是我怎样才能触发一个事件,让它每天或每 n 小时向用户发送消息呢?或者有没有其他解决方案?

谢谢!!

【问题讨论】:

    标签: chatbot messenger dialogflow-es


    【解决方案1】:

    Facebook 去年通过标准消息传递权限扼杀了这种能力。您现在拥有24hrs to respond 到用户发起的消息。有几个例外,包括:

    Facebook 似乎推出了订阅消息功能,这需要额外的 Facebook 权限,需要将其添加到您的应用程序review submission


    此外,API.ai 会话过期。

    默认情况下,上下文在 5 个请求或 10 分钟后过期 从它们被激活的那一刻起。更新上下文的意图将 重置计数器和时钟以提供额外的五个请求和 十分钟。

    您可以在每个上下文的设置中更改上下文生命周期。

    https://docs.api.ai/docs/concept-contexts#output-contexts

    虽然改变生命周期可能只会增加它所支持的请求数量,因为没有提到增加时间。


    TL;DR:两个平台的限制和限制意味着这可能是不可能的。

    【讨论】:

      【解决方案2】:

      这通常取决于您为 API.AI 启用的集成类型。据我所知,API.AI 中没有任何内容可以允许某种 cron 作业发送一些通知。

      在我们的场景中,我们使用 Slack + API.AI 并且 Slack 提供传入的 Webhook 通知来通知整个频道或特定用户。但同样,此通知代码在 API.AI 之外运行

      【讨论】:

        【解决方案3】:

        您需要为用户提供订阅和取消订阅推送消息的功能,并符合 Facebook 提供的三个类别之一以获得 Messaging_subscription 批准。

        如果您只是想测试,是否已完成批准。您将设置以下内容:

        API.AI 通过指定的操作订阅和取消订阅意图

        该操作将使用 FBID 更新表格,以便您知道谁想要接收消息,谁不想接收。

        高级别的,您将使用您应用的页面令牌创建一个使用某种异步任务\作业队列向用户广播的服务。我们使用https://www.npmjs.com/package/node-celery

        【讨论】:

          猜你喜欢
          • 2019-07-24
          • 1970-01-01
          • 1970-01-01
          • 2017-01-13
          • 1970-01-01
          • 2012-07-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多