4

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

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

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

谢谢!!

4

3 回答 3

0

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

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

于 2017-02-21T15:04:24.627 回答
0

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

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

API.AI 通过分配的操作订阅和取消订阅意图

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

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

于 2017-08-01T11:27:04.723 回答
0

Facebook 去年通过标准消息传递权限扼杀了这种能力。您现在有24 小时的时间来响应用户发起的消息。有几个例外,包括:

看起来 Facebook 推出了订阅消息,这需要额外的 Facebook 权限,需要添加到您的应用评论提交中。


此外,API.ai 会话过期。

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

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

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

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


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

于 2017-02-21T05:37:21.680 回答