【ProtoPie Connect 教程】第2课 - 初探与IFTTT集成

引言
在这一教程中,我们将会用一个简单的示例来展示如何使用Connect内置的IFTTT插件来创建Connect与第三方服务之间的集成。这个示例的一大亮点是你不需要为此支付任何费用,也不需要从外部获取任何组成部件,仅仅需要一个免费的IFTTT帐户以及Connect本身即可完成。
学习内容
在本教程中,我们会覆盖以下知识点:
IFTTT是什么?
IFTTT如何与ProtoPie Connect协作
如何在IFTTT中创建一个小程序并使用ProtoPie来触发这一小程序
本教程约需15分钟完成。
IFTTT是什么?
IFTTT是“If This, Then That(先这样,然后再那样)”的意思,读起来就像“Gift”去掉“G”的读音。这是一个在线平台,这个平台支持数百个主流互联网服务之间的互操作行为,为任务流自动化提供了全新的可能。略览IFTTT的服务页 ( https://ifttt.com/explore/services ) 即可看到种类繁多、琳琅满目的app及产品,如推特、Dropbox、印象笔记、FitBit、亚马逊Alexa,以及谷歌助理等等,均可在IFTTT中被调用,而这里所列举的仅仅是700余种app及产品中较为知名的几个。点击此处 ( https://help.ifttt.com/hc/en-us/articles/115010325748-What-is-IFTTT- ) 可以了解到关于IFTTT的更多知识。
IFTTT的工作原理与ProtoPie的触发和反应模型在许多方面具有相似之处。在IFTTT中创建的小程序被预定义的条件所触发,然后既定的行为就会作为相应的反应动作从而被执行。例如,在智能家居场景中,可以创建一个小程序,用以在前门解锁时自动打开玄关灯,或者更具体来说,如下图所示:

IFTTT如何与ProtoPie Connect协作?
在ProtoPie Connect中,有一个内置插件可以用来触发一种名为“Webhook” 的东西,简单地说,Webhook的运行方式就类似于ProtoPie中的发送与接收一样。当一条名为“Event”的消息被发送到IFTTT,且在IFTTT中预先设置了对这一消息的监听时,IFTTT就会执行预先设置好的任务。并且,类似于ProtoPie,在发送消息时,可以将少量数据随附于消息上一并发送。
在以下示例中,我们将使用Webhook作为触发动作,然后将反应动作设为发送一封邮件。
我们开始吧!
下载以下Pie文件,然后跟随视频内容进行操作吧!https://cloud.protopie.io/p/8db93df706
在视频的3:27处,我演示了如何构建一个“JSON字符串”并将其作为随消息一并发送给Connect的值。对于这个JSON字符串,你可以跟随视频教学来自行构建,也可以直接复制以下内容,当复制以下内容来完成学习时效果会与视频内所示一致。
"{\\"value1\\":\\"" +
Name.text + "\\"}"
如果你不熟悉JSON,那么可以查看本文末尾的参考内容以便了解更多信息。

就是这样,轻而易举!
虽然这只是一个如何使用IFTTT插件的简单示例,但充分展示了Pie与第三方服务进行协作是多么容易。IFTTT支持的所有服务都可以从ProtoPie Connect中通过Webhook事件的方式进行触发。如此一来,可以直观地看到Pie从Studio的预览窗口中跳出,然后开始与互联网上的各类东西进行互动。
故障排除
可能有时候未必就能万事如意,尤其是像这样处理不同系统间的集成时,很多环节或步骤也许就弄错了——这是原型生命周期中一个无法逃避的事实,甚至在这种情况下,事情发展完全脱离掌控也是有可能发生的。总的来说,如果在你的收件箱中并没有收到相应的邮件,则应该检查核对以下内容:
确保是在Connect的预览窗口中运行Pie。如果只是在Studio的预览窗口中运行Pie,那么消息将无法传递到Connect上,从而也就无法触发随后的IFTTT中的Webhook事件。所以,应该检查一下地址栏中是否有localhost:9981/...的字样。

ProtoPie Connect是不是已经被关闭了?即使在浏览器中仍然可以看到预览界面,仍然需要保持Connect的持续运行,以便确保消息可以触达IFTTT。
确保IFTTT插件在运行。记不记得在设置了事件后需要点击“运行(Run)”按钮来运行?所以当你能看到Stop按钮时,即表示插件正在运行中。

确保Connect中的消息名称与IFTTT中所用的名称完全一致。这两个名称分别可以在ProtoPie Studio和IFTTT小程序中进行设置。
- 同时再次检查所输入的Webhook的Key是否正确。
使用ProtoPie Connect中的测试功能进行测试。在IFTTT插件的配置项中,将
Email_Me
输入到测试框内,然后点击“发送”。- 如果能收到测试邮件,那么有较大可能性是因为在ProtoPie消息中有拼写错误,或者是没有选择ProtoPie Studio作为渠道来发送消息。
- 如果仍然无法收到测试邮件,那么应再次检查webhook的key有没有填错,或继续参考下文的排障步骤来进行故障排除。

登录到IFTTT网页上,点击屏幕上方的“My Applets”,然后点击你学习本教程时建立的小程序相对应的卡片,网页打开后就可以查看到这个小程序的详情页面。

确保大的拨动按钮显示“Connected”。如果并没有这样显示,那么就需要点击一下这个拨动按钮以便重新启用这一小程序。.
再次检查此处显示的事件名称与在ProtoPie Connect中所进行的配置必须完全匹配。
- 奇怪的是,在IFTTT中,这类事件被称为“Maker事件”,而不是“Webhook事件”
点击“View activity”按钮,如果一切运行正常,则可以查看到小程序的执行记录。在执行记录中,如果显示不存在任何事件记录,则应再做一遍创建IFTTT小程序的相关步骤。

检查垃圾邮件所对应的收件箱,邮件可能被发送到这个收件箱里了。
试试再耐心地多等一小会儿。如果以上一切看上去都是正常的,可能你只需要再淡定一分钟。IFTTT付费用户的小程序执行优先级高于免费用户,所以有时候IFTTT会处于一个高负载的繁忙状态,需要等待工作任务被逐个被处理完。一般来说,收到邮件的时间不应该超过一两分钟。
如果还不成功?那就请联系ProtoPie吧 ( https://www.protopie.io/form/contact-us )
补充资料:JSON是什么?
在视频的3:27处我们构建了一个”JSON字符串“,并将这一字符串最终传递给了IFTTT小程序。JSON是一种在互联网上广泛使用的信息格式,借助这一格式,可以以人类可读的形式存储和传输信息。以下是一些学习资源,你可以从中了解更多关于JSON的知识:
3分钟了解JSON - 中文课
带你快速了解Json以及Json的用法 - 中文课
10分钟了解JSON(而不是Jason)- Youtube课 ( https://www.youtube.com/watch?v=s6OIOL9OMYA )
JSON是什么?- 3分钟代码 Youtube课 ( https://www.youtube.com/watch?v=sSL2to7Jg5g )