Zapier / IFTTT如何为不同的API提供商实施触发器和操作?

时间:2014-07-09 14:32:40

标签: mashup zapier

Zapier / IFTTT如何为不同的API提供商实施触发器和操作?有没有通用的方法来做到这一点,或者它们是由个人实施的?

我认为实现基于REST / Oauth,从高级别来看是通用的。但对于Zapier / IFTTT,它定义了许多触发条件,过滤器。这些条件,过滤器应该针对不同的提供商。相应的实现是单独的还是通用的?如果在个人中,必须有庞大的劳动力。如果是通用的,怎么做?

3 个答案:

答案 0 :(得分:1)

Zapier开发人员 - 简短的回答是,我们实施每一个!

虽然像OAuth这样的标准可以更容易地将一些代码中的某些代码重用到另一个API,但是每个API都有独特的端点和独特的要求。适用于一个API的功能不一定适用于另一个API。在内部,我们已经将尽可能多的流程抽象为可重用的位,但是总是需要一些工作来添加新的API。

答案 1 :(得分:1)

PipeThru开发人员......

每个API都有可以重复使用的常见元素,例如OAuth身份验证,通用数据格式(JSON,XML等)。大多数API都致力于RESTful实现。然而,理论符合现实,大多数API都到处都是。

每个服务都提供自己的端点,并且没有通用的一组端点对于给定的服务是正确的。例如,在CRM软件中,不清楚如何表示人,对所述人的记录,相应的电话号码,地址以及活动。你提供一个或几个端点?你如何更新每个?您是否为记录提供切向记录(如该人的公司)?每个都需要该服务的特定知识以及一些数据规范化。

大多数触发器涉及检查新记录(唯一ID)或更新字段,通常是最后一次更新时间戳。大多数服务以ISO 8601格式显示其时间戳,这使得解析时间戳变得容易,但不是每个人。 Dropbox实际上提供了一个delta API端点,您可以向其提供哈希值,Dropbox将向您发送从该点开始的所有新的/更改的内容。我喜欢在更多API中看到delta和/或activity端点。

整体而言,整合每项服务确实需要大量的精力和测试。

我将指出Zapier确实为其他公司实施了一个API来插入他们的工具。您可以将新的/更新的数据发送到Zapier以触发其中一个Zaps,而不是Zapier实现您的API和Zapier轮询您的数据。我喜欢把它想象成破解的webhooks。这使得Zapier可以支持更多服务,而无需对每个服务进行编程。

答案 2 :(得分:0)

我在Zapier上实现了一些API,所以我想我至少可以提供一些部分答案。如果不使用webhook,Zapier将检查来自该字段服务的API响应,其中包含字符串“id”的最短名称。对此字段的更改会导致Zapier触发任务。这是基于id通常是增量或随机的假设。

我必须通过将id值移动到另一个字段并在id无法触发时将不同的值写入id,或者过于频繁地触发(除以10然后写入id会降低触发灵敏度,例如)。歧义也是一个问题,例如在包含post_id和mesg_id等字段的API响应中。

简短的回答是系统做出了有根据的猜测,但为了使其能够可靠地运行特定服务,您应该在代码中非常具体地了解触发事件的构成。

相关问题