使用Api.ai

时间:2017-02-20 23:30:26

标签: chatbot messenger dialogflow

我正在使用Api.ai制作聊天机器人以获取健康建议。

我想每天向用户发送推荐的锻炼计划。但Api.ai的意图只能在用户说出某些内容时做出回应。

我应该使用这些活动吗?但是,如何触发一个事件,使其每天或每隔n小时发送一次消息?或者还有其他解决方案吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

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

看起来Facebook推出了Subscription Messaging,需要额外的Facebook权限才能添加到您的应用review submission

此外,API.ai会话到期。

  

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

     

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

     

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

虽然改变生命周期可能只会增加其生活的请求数量,因为没有提及增加时间。

TL; DR:两个平台的限制和限制意味着这可能无法实现。

答案 1 :(得分:0)

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

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

之外运行

答案 2 :(得分:0)

您需要为用户提供订阅和取消订阅推送消息的功能,并使用Facebook提供的三个类别之一来接收Messaging_subscription批准。

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

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

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

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