如果你用过Zapier或Make,大概率遇到过这些糟心事:免费版额度不够用,想接的服务偏偏没有现成连接器。这时候n8n是个值得考虑的替代方案——开源、可自托管,而且"节点"式的逻辑设计让你真的能随心所欲拼流程。
这篇教程带你从零搭一个实用工作流:每天早上9点自动跑,抓取天气数据,推送到Discord。全程30分钟,不需要写代码。
你会摸到4个核心模块:触发器(Trigger)、HTTP请求、字段编辑、目标推送。这4块能覆盖你未来90%的工作流场景。
需要准备什么
Docker(或者n8n Cloud的14天试用账号)、一个有管理员权限的Discord服务器、30分钟时间。代码基础为零完全没问题。
第一步:启动n8n(5分钟)
推荐用Docker,免费且数据在自己手里。两条命令:
docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
然后打开http://localhost:5678,创建本地管理员账号。这里有个坑:必须创建docker volume来持久化数据,否则下次docker stop之后所有工作流和凭证都会消失。
想省事的直接去n8n.io点"Start free trial",不用安装,但14天后要付费。
第二步:搞懂三个词(2分钟)
Workflow:完整的动作链条。Node:单个模块,要么是触发器(起点),要么是动作。Execution:工作流的一次运行记录,调试时全靠它。
记住:每个工作流必须从触发器开始,没有触发器就什么都不会发生。
第三步:设置定时触发(3分钟)
在空白画布点中间的"+",搜索"Schedule Trigger"。参数设置:Interval选Days,Hour填9,Minute填0。Ctrl/Cmd+S保存。现在你的工作流每天早上9点准时启动。
第四步:调用公开API(5分钟)
用Open-Meteo,免费、无需API密钥。在Schedule节点右边点"+",搜索"HTTP Request"。Method选GET,URL填:
https://api.open-meteo.com/v1/forecast?latitude=48.0&longitude=0.2¤t=temperature_2m,weathercode&timezone=Europe/Paris
把经纬度换成你所在城市,点"Execute Step"。右侧面板应该返回类似这样的JSON:
"current": {
"temperature_2m": 14.3,
"weathercode": 2
看到这个,你的第一个API调用就成了。
第五步:用表达式格式化消息(4分钟)
这是n8n真正强大的地方。点"+"搜索"Edit Fields"(以前叫Set),Mode选Manual Mapping。Add Field,Name填"message",点Value右边的"="图标切换到表达式模式。
现在你可以用n8n的表达式语法,把上一步API返回的温度和天气代码,拼成一句人话。比如:"今天气温{{$json.current.temperature_2m}}度,天气代码{{$json.current.weathercode}}"。
表达式里的$json指向上一个节点的输出数据,用点号层层往下挖就行。
第六步:推送到Discord(5分钟)
去Discord服务器设置里创建一个Webhook,复制URL。回n8n,点"+"搜索"Discord"节点,选"Send a message"。把Webhook URL贴进Credential,Message内容选上一步的message字段。
保存,点"Execute Workflow"测试。如果Discord频道里跳出天气消息,整个链路就通了。
最后:激活工作流(1分钟)
右上角把Inactive切换成Active。现在每天早上9点,机器人会自动跑一遍:查天气→格式化→发Discord。执行历史在左侧Executions里随时可查,哪步出错一目了然。
这个骨架搭起来之后,换掉API端点和推送目标,就能变出无数实用场景:监控网站状态、追踪价格变动、汇总RSS推送……n8n的节点库有400多个,自托管还不怕用量天花板。
热门跟贴