嘿,朋友!如果你已经跟着前面的教程了解了n8n的基本概念,知道“节点”是构建一切自动化的乐高积木,那么现在,是时候亲手搭点什么了。我知道,看再多教程,都不如自己动手做一遍来得实在。那种看着一堆零散的节点,在自己手里“啪嗒”几声连接起来,然后像魔法一样自动运行起来的感觉,简直太棒了。
今天,我们就来玩一个既实用又有趣的项目:定时抓取天气数据,并在下雨时给你发送提醒。这个场景几乎每个人都能用上,比如早上出门前想知道要不要带伞,或者计划周末出游前看看天气。我们将从一张白纸开始,一步步使用HTTP Request、Function、IF这几个最核心的节点,把它们串联成一个真正能干活的工作流。别担心,哪怕你之前一行代码都没写过,我也能保证你跟着做下来绝对没问题。我们的目标不是复刻一个复杂的系统,而是让你彻底理解数据是怎么在节点之间“流动”起来的,这才是掌握n8n心法的关键。
在开始之前,我们先在脑子里画个简单的蓝图。整个工作流大概会是这样运行的:首先,有一个“闹钟”(Schedule Trigger节点)在每天早上7点把我们叫醒,触发工作流。然后,工作流会派一个“信使”(HTTP Request节点)去天气API那里问一下今天的天气情况。这个“信使”带回来的是一堆原始数据,可能有点乱,所以我们需要一个“翻译官”(Function节点)来把关键信息,比如“会不会下雨”,给提取出来。接着,一位“决策者”(IF节点)登场,它根据“翻译官”提供的信息判断:“今天下雨吗?”如果答案是“是”,它就指挥“邮差”(Email节点)给我们发一封提醒邮件;如果答案是“否”,那整个工作流就安静地结束,不打扰我们。你看,逻辑是不是非常清晰?接下来,我们就进入n8n的编辑器,把这些角色一个个请出来,并告诉它们该怎么工作。
万事开头难,但n8n已经把开头变得非常简单了。首先,打开你的n8n(无论是本地部署的还是云端的),点击左上角的“工作流”菜单,然后选择“新建工作流”。你会看到一个空白的画布,这就是我们施展魔法的舞台。我建议你立即给这个工作流改个名字,比如“天气提醒小助手”,养成好习惯,以后工作流多了才不会乱。
我们的第一个演员是“闹钟”,在n8n里它叫 Schedule Trigger 节点。在画布左侧的节点面板里,搜索“schedule”,把它拖到画布上。这个节点决定了工作流什么时候自动运行。双击它进行配置,你会看到几个关键选项。触发方式(Trigger)就选“Every Day”(每天)。然后,我们需要设定具体时间。在“Hour”和“Minute”字段里,分别填入7和0,这代表每天UTC时间的7点整。这里有个新手常踩的坑:n8n默认使用UTC时间(协调世界时),比北京时间晚8小时。所以,如果你希望在北京时间早上7点触发,这里应该填“23”和“0”(即前一天的23点)。或者,更推荐的做法是在后面的Function节点里做时区转换,我们稍后会讲到。配置好后,你可以点击“执行一次”按钮测试一下,看看节点右下角是否出现绿色对勾,这表示它能被正常触发。
接下来,该我们的“信使”出场了,也就是 HTTP Request 节点。搜索并拖入它,然后用连接线从Schedule节点的输出端(右边的小点)拉到HTTP Request节点的输入端(左边的小点)。这条线就是数据的“高速公路”。现在,我们需要告诉“信使”去哪里获取数据。这里我推荐一个免费且简单的天气API:Open-Meteo。它的好处是不需要注册获取复杂的API密钥,对初学者非常友好。在HTTP Request节点的配置中:
- 方法(Method):选择“GET”。
- URL:填入 我来解释一下这个URL:它向Open-Meteo的预报接口发起请求。和是地理坐标,这里我填的是北京的坐标,你可以换成你所在城市的经纬度(去地图应用里搜一下很方便)。表示我们想要“每日降水总量”这个数据。则将返回数据的时间设置为北京时间。配置好后,同样点击“执行一次”测试。如果一切正常,你会在节点下半部分看到返回的JSON数据,里面应该有一个字段,它的值可能就是今天预估的降雨量(单位通常是毫米)。
“信使”带回来的数据是一大串JSON,虽然机器看得懂,但我们后面的“决策者”IF节点需要的是一个干净明确的判断依据,比如“今天有雨:是或否”。这个提炼和转换的工作,就交给功能强大的 Function 节点。拖入Function节点,并将其连接到HTTP Request节点之后。
Function节点允许我们写一小段JavaScript代码来处理上游数据。点击进入配置,你会看到一个代码编辑器。上游HTTP Request节点传来的所有数据,都包含在一个叫 的对象里。我们的任务就是从 里挖出降雨量数据,并做一个简单的判断。把下面的代码复制进去:
让我逐行解释一下,这样你才能真正理解。第一行, 拿到了返回数据中这个对象。第二行,从这个对象里取出数组,并取第一个元素,这通常就代表“今天”的预报值。接着,我们判断这个值是否大于0.5(这个阈值你可以自己调整),并将布尔结果存入。最后,语句非常重要,它决定了这个节点输出给下一个节点的数据是什么。我们输出了一个包含降水量、是否有雨布尔值、以及一条友好提示消息的新对象。你可以点击“执行一次”,在输入面板选择上一个节点的数据,然后看看输出面板是不是出现了我们定义的这个新对象。这一步成功了,就意味着数据已经被我们“驯服”了。
现在,最激动人心的逻辑判断环节来了。拖入 IF 节点,连接到Function节点之后。IF节点的配置就像一个岔路口,我们需要设置条件,告诉它往哪边走。在“条件”设置里,选择“字符串”或“数字”类型(因为我们比较的是布尔值,选哪个都行,系统会智能处理)。关键的操作是:在第一个值(Value 1)里,我们需要引用Function节点输出的字段。这里要用到n8n的表达式(Expression)。点击输入框旁的小括号图标 ,会打开表达式编辑器。在里面输入 。这个代表的是上一个节点(即Function节点)输出的整个数据对象,就是取其中的属性。条件运算符选择“等于”(Equals),第二个值(Value 2)直接填入 。这样,条件就设置好了:如果为真,就走“真”分支(通常连线在下方);否则就走“假”分支(上方)。你可以暂时把两条输出线都连上,后面我们再分别处理。
工作流已经具备了思考和判断的能力,现在它需要把结果告诉我们。我们来实现“真”分支,即下雨时发送通知。这里我们用 Email 节点(如果你配置了邮件)或者更通用的 Telegram 或 Slack 节点。以Email节点为例,拖入一个Email节点,连接到IF节点的“真”分支输出端。
配置Email节点需要你提前在n8n的设置里配置好邮件发送服务(如Gmail、SMTP等)。假设已经配置好,那么在节点里:
- 发件人:填你的邮箱。
- 收件人:填你要接收提醒的邮箱。
- 主题:可以写“天气提醒:今天有雨!”。为了让主题更动态,你也可以用表达式,比如 。
- 正文:这里就是我们展示Function节点生成的消息的好地方。选择“HTML”或“文本”格式,在内容里通过表达式 插入我们之前生成的那句提示语。你还可以加上降水量详情:。 这样,当下雨条件满足时,一封贴心的提醒邮件就会自动飞到你的收件箱。
那么,如果不下雨呢?我们可能希望工作流安静结束,或者记录一条日志。我们可以为“假”分支连接一个 No Operation 节点(什么都不做),或者连接一个 Code 节点,简单地在控制台输出一条信息。但我想借此引入一个更重要的概念:错误处理。在实际应用中,HTTP请求可能会失败(网络问题、API变更),Function节点的代码可能有笔误。我们需要让工作流更健壮。为此,我们可以使用 Catch 节点。你可以在画布空白处右键,选择“添加错误处理节点”,它会自动连接到当前选中的节点(比如HTTP Request节点)上。在Catch节点里,你可以配置当上游节点出错时该怎么办,比如发送一封报警邮件给你,告诉你“天气数据获取失败,请检查!”。这就像给工作流买了一份保险。
所有节点都连接好了,但这不意味着大功告成。在点击那个绿色的“激活工作流”开关让它永久运行之前,我们必须进行充分的测试。n8n提供了非常强大的单步调试功能,这是你学习数据流转的**工具。点击画布右上角的“执行工作流”按钮,工作流会从起始节点开始运行。你可以观察每个节点右上角的状态图标:灰色是待执行,黄色是执行中,绿色是成功,红色是失败。
更重要的是,点击任何一个执行完成的节点,你可以在右侧面板看到该节点的“输入数据”和“输出数据”。请务必养成检查每一个节点输入输出的习惯。比如,检查HTTP Request节点返回的JSON结构是否和你想的一样;检查Function节点输出的对象是否包含了正确的字段;检查IF节点判断的条件表达式引用的路径对不对。我遇到过很多次问题,都是因为数据路径写错了,比如写成而不是,一个细微差别就会导致整个流程失败。
测试无误后,就可以激活工作流了。点击工作流列表旁边的开关图标,让它变成绿色激活状态。这样,它就会按照Schedule节点的设置,每天自动运行。你可以在“执行历史”里查看它每次运行的结果日志。最后,还有一些优化思路你可以尝试:比如,把城市坐标、降雨阈值这些可能会变的参数,提取到工作流的“变量”里集中管理,这样以后修改起来就不用一个个节点去找了。或者,尝试把邮件通知换成Telegram机器人通知,体验一下不同节点集成的乐趣。
走到这一步,你已经不仅仅是一个教程的跟随者了。你亲手搭建了一个能解决实际问题的自动化流程,你理解了数据如何从一个节点“流”到下一个节点,并在每个节点被加工、判断。这个“天气提醒小助手”虽然简单,但它包含了自动化工作流最核心的骨架:触发、获取、处理、判断、执行。以后无论你想做更复杂的场景,比如监控商品价格、自动备份文件、聚合多平台信息,其思维模式都是一样的。最关键的是,你克服了从“看”到“做”的障碍,这才是最宝贵的起点。我建议你基于这个流程,大胆地修改和实验,比如增加一个节点,在晴天时给你推荐户外活动,这才是真正学习的开始。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/234778.html