优秀程序员必备知识:你听过IFTTT吗?

图片

有过营销业务开发经验的程序员,一定遇到过类似这种需求:

“当用户关注了xx官方号后,我们就给他发张优惠券”

这种需求经过抽象,可以转化为一种范式:当满足某种条件时,就触发某种动作。这个范式就是我们今天要聊的IFTTT的基本理念。

01 什么是IFTTT?

图片

IFTTT,是一个新生的网络服务平台,通过其他不同平台的条件来决定是否执行下一条命令。即对网络服务通过其他网络服务作出反应。IFTTT得名为其口号“if this then that”。

--维基百科

以上就是来自维基百科对于“IFTTT”的定义,IFTTT的念法类似英语单词“gift ”的“ift”,即不要发“g”的音。

简而言之,IFTTT就是基于条件触发的任务,即“若xx发生yy行为,就执行zz动作”。其中,每一个可以发生行为的场景叫做一个Channel,触发的条件叫Triggers,之后执行的任务叫Actions,这一整套流程就叫Recipes

图片

IFTTT的基本理念是很简单的,但是它可以实现“由简单组成的复杂”,即由众多简单的IFTTT流程相互衔接,组成跨平台、跨设备的复杂流程。

02 常见应用

国外有一款就叫“IFTTT”的App,它就是我们上面所说的IFTTT的理念的应用。它对接了很多互联网产品(就是前面所说的Channel),比如Twitter、Facebook、Amazon Alexa等。可以实现诸如 “我在 Twitter 上为一张照片点赞后,就将这张照片自动存入我的 Dropbox(网盘服务)上” 这种跨App的任务。

图片

另一款典型的IFTTT应用,就是iOS自带的“快捷指令”中的“自动化”。自动化是一种由事件激活的快捷指令,您可以使用“快捷指令” App 设置个人或家庭自动化,然后通过到达、离开、更改 iPhone 上的设置和一天中的某个时间等事件触发自动化快捷指令。

图片

03 技术实现

回到我们文章开头的那个需求案例,这是互联网常见的营销功能。通过IFTTT的理念,我们可以将它转化为这种范式:

图片

首先,我们按照IFTTT的规范对业务进行建模,分为Channel、Trigger和Action三层,整体构成一个Recipe:

  • Channel
    Channel层在营销业务中的作用是保存和管理用户行为数据,它定义了用户行为的元数据结构,包括行为类型、对象和时间等。Channel层是营销IFTTT的基石,Trigger和Action均是基于用户行为数据进一步抽象业务逻辑的。

  • Trigger
    Trigger层是业务上自定义的触发事件,与业务息息相关,可能是新增粉丝了、浏览过的商品降价了或者是参加的抽奖活动开奖了等。当Trigger触发后,IFTTT会根据Trigger类型和配置的行为类型调用Action层进行处理。

  • Action
    Action层是营销IFTTT的执行动作,可以是给用户发优惠券、Push信息、发权益或者其他定制逻辑。Action一般是标准化、可插拔的组件,业务上可以实现不同营销策略的组合或者通过A/B Test来测试营销策略的效果。

基于这个业务抽象,相应的营销业务的技术架构一般如下:

图片

整体技术方案就是按照前面业务建模的结构图进行技术实现的选型和细化,补充依赖的技术组件。这样一来,我们就通过IFTTT标准化协议为这一类营销需求提供了通用的技术解决方案。

04 结语

正如Haskell 语言的设计者之一 Paul Hudak所说,抽象能力是编程中最重要的能力。

Abstraction, abstraction, abstraction are the three most important things in programming.

IFTTT就是一种最典型的抽象能力的体现,它将千万种看起来变化多端的流程需求转化为了一种由Channel、Trigger、Action三种元素组成的简单范式,极大地提升了研发效率。因此,当我们自嘲“搬砖”的时候,应该多思考如何改进技术实现方案,将体力劳动转化为脑力劳动,通过抽象将复杂的事情简单化。

欢迎关注我的公众号:

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将天猫精灵APP中的设备实体添加到Hass中,需要使用Home Assistant Cloud组件和IFTTT(If This Then That)服务。以下是具体步骤: 1. 安装和配置Home Assistant Cloud组件 在Hass中安装和配置Home Assistant Cloud组件,以便将Hass与IFTTT服务连接起来,具体步骤请参考Home Assistant官方文档。 2. 创建IFTTT applet 在IFTTT中创建一个applet,以便将天猫精灵APP中的设备实体添加到Hass中。具体步骤如下: - 在IFTTT中创建一个新的applet,选择“+this”添加“天猫精灵”作为触发服务。 - 选择要添加到Hass中的设备实体,例如“智能插座”。 - 选择“+that”添加“Webhooks”作为响应服务。 - 在Webhooks中选择“Make a web request”作为Action。 - 在URL字段中输入Hass的URL,例如:https://my-hass-domain.duckdns.org/api/services/switch/turn_on,其中my-hass-domain.duckdns.org是你的Hass域名。 - 在Method字段中选择POST。 - 在Headers字段中添加Authorization字段,并输入Bearer加上Home Assistant Cloud的long-lived access token。 - 在Body字段中输入JSON格式的数据,例如:{"entity_id": "switch.smart_plug"},其中switch.smart_plug是你要控制的设备实体ID。 3. 在天猫精灵APP中授权IFTTT 在天猫精灵APP中授权IFTTT,以便将设备实体添加到Hass中。具体步骤如下: - 在天猫精灵APP中选择“我的”。 - 选择“第三方接入”。 - 选择“IFTTT”。 - 输入IFTTT账号和密码进行授权。 4. 测试添加设备实体 在天猫精灵APP中测试添加设备实体,例如打开智能插座。如果一切正常,你应该能够在Hass中看到设备实体,并能够通过Hass控制设备。 注意:如果你的Hass没有公网IP或域名,需要使用反向代理或DDNS等技术让Hass能够被IFTTT访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值