【问题标题】:Building an ifttt clone构建 ifttt 克隆
【发布时间】:2014-01-21 01:14:10
【问题描述】:

出于学习目的,我非常想构建一个 ifttt 克隆。

我可以自己编码,至少在 python 中,并且通常会为我自己的问题想出好的解决方案。问题是我不知道从哪里开始构建这样的系统,所以我对这样的动态系统的架构感兴趣,具有不同的触发器和不同的操作?

谢谢!

编辑:使问题更容易一些。

【问题讨论】:

  • 这个问题太宽泛了,无法回答
  • @mhlester 我编辑了我的问题,试图稍微简化一下。无论如何,知道我至少应该从哪里开始吗?
  • 看看huginn at github。与您要编写的代码相同,但使用 ruby​​。
  • 看看 github 上的pimatic。与您要编写的代码相同,但在 Node.js 中。
  • 对于任何想要这样做的人,请查看Trigger Happy,我相信它是使用 Python 和 Django 构建的。

标签: python architecture triggers action system


【解决方案1】:

IFTTT 所做的事情可以分解为以下几点: - 检查事情是否发生 - 接收事件发生的触发器 - 向 API 发送请求 - 将“正在发生的事情”连接到 API 请求

最直接的一种是“向 API 发送请求”,所以我建议您从那里开始。尝试使用代码与不同网站的 API 对话:Twitter、Instagram、Dropbox、Facebook 等。绝对使用 requests 库。

“检查是否发生了事情”有点困难,在这里您定期轮询服务(如 API)以查看另一端的状态是否已更改。如果东西发生了变化(并且已经改变的东西与配方相关)现在我们知道了。我们可以使用这些知识来触发“向 API 发送请求”。您可能也可以为此使用 Requests。

“接收发生的事情的信息”可能是最难的。它与“检查是否发生了事情”非常相似,但这是被动的而不是主动的。查看发布/订阅模式和PubSubHubbub

将它们连接在一起。现在基本上你想创建用户可以以某种方式定义的食谱。我一开始只是对它们进行硬编码,然后通过 Web 界面使其可配置。所以基本上:检查东西是否改变,如果是,向 API 发送请求。然后稍后您可以遍历所有配方并检查您需要检查每个配方的内容,如果发生了事情,请发送配方中定义的请求。然后最后创建一个 web 应用程序,包括用户可以在其中定义食谱的表单。我建议为此使用某种框架,Django 很受欢迎,Flask 也是如此。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 2018-06-09
    相关资源
    最近更新 更多