2025 年,低代码自动化工具风靡开发者社区,而 GitHub 上最火的开源项目之一 n8n 成为了技术爱好者必学的自动化利器。
本文将手把手教你如何用 n8n 搭建一个 内容自动推送流程,以飞书作为示例推送平台,让你在实践中熟悉 n8n 的工作方式和核心节点。即使你未来想扩展到其他平台,这套流程也完全适用。
先看下最终产出结果:
-
n8n 中的工作流:
-
飞书中带评分的文章推荐:
一、准备工作
在开始之前,你需要准备以下内容:
-
n8n 环境
- 可以选择本地 Docker 部署,也可以使用 n8n.cloud 云端服务。(本例选用后者)
- 如果是本地部署,确保 Docker 已安装并可正常运行。
官方提供的云端版,可以直接在浏览器访问,无需自己部署。地址: n8n.io/cloud。 注册后,点击
Get started for free按钮,在 Dashboard 面板点击Open instance按钮进入实例, 最后点击Create workflow按钮创建工作空间。
-
推送平台(本例为飞书)
- 打开你的飞书群 → “群设置” → “智能群助手” → “添加机器人”。
- 选择自定义机器人。
- 给机器人设置名称、头像,然后记下 Webhook URL。这个 URL 形如:
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx- 如果需要,可以设置安全签名验证(本例未配置)。
- 注意:你也可以选择其他推送平台,例如企业微信、Slack 等。
-
文章源
- 可以是技术博客 RSS、微信公众号 RSS 或者你自己团队的内部文章源。 (本例使用的 smashingmagazine 提供的 RSS)
-
大模型 / AI 接入(可选)
- 如果你希望自动评分文章或生成摘要,可准备一个大模型 API,例如 OpenAI、千问大模型等,并准备好 API-KEY。
二、n8n 流程设计概览
我们要实现的流程大致如下:
- Schedule Trigger:定时触发任务
- RSS Read:获取文章列表
- Limit:控制抓取文章数量
- HTTP Request → Code:调用大语言模型给文章评分,并返回可用的数据结构
- HTTP Request:发送消息到目标平台(以飞书为例)
三、详细步骤
(一)Schedule Trigger 节点:定时触发
- 拖一个 Schedule Trigger 节点到工作区。
- 双击节点配置 Schedule Trigger:
- 配置触发频率,例如每天 9:00 自动执行。
- 这就是你的触发器,控制多久去抓一次 RSS。
(二)RSS Read 节点:获取文章
- 添加 RSS Read 节点,连接 Schedule Trigger 节点。
- 配置 RSS URL,例如
https://www.smashingmagazine.com/feed/。- 可以看到能够获取到 40 条资讯。
- 添加 Limit 节点,建议设置 Max Items: 10,先抓取最近 10 条文章。
(三)HTTP Request 节点:调用大语言模型(难点)
这个步骤需要将抓取到的文章数据通过请求 body 传给大模型,并让它返回理想的数据格式。
不同的模型请求的格式基本一样,只是 URL 与 model 有所不同。
-
添加 HTTP Request 节点。
-
配置:
- HTTP Method: POST
- URL: 大模型 API 地址
- Specify Headers: Using JSON, 并填入如下代码:
{ "Authorization": "Bearer <你的_API_KEY>", "Content-Type": "application/json", "Accept": "application/json" }- Body Content Type: JSON
- Specify Body: Using JSON, 选择
Expression模式,并填入如下代码:
{{ { "model": "模型名称", "messages": [ { "role": "user", "content": "请根据以下文章评分。\n\n" + "评分维度:\n" + "1 信息价值\n" + "2 技术深度\n" + "3 是否值得阅读\n\n" + "返回 JSON,例如:\n" + "{\n" + " \"score\": 0,\n" + " \"title\": \"标题\"\n" + " \"link\": \"链接\"\n" + " \"summary\": \"一句话总结\"\n" + "}\n\n" + "文章:\n\n" + "标题:" + $json.title + "\n" + "摘要:" + $json.content + "\n" + "链接:" + $json.link + "\n" + "正文:" + ($json["content:encoded"] ? $json["content:encoded"].slice(0,1000) : "") } ], "reasoning": { "enabled": true } } }}- Response Format: JSON
-
需要注意以下两点:
备注:这里我调试了很久才把 prompt 的格式调整对,如果返回值不对,需要多查看下配置信息是否填对。或者使用 postman 先进行请求测试,排除 n8n 格式不当导致的请求不成功。
(四)Code 节点:整理推送内容
-
拖拽 Code 节点到工作区与上一个节点连接。
-
在 Code 节点配置 Language: JavaScript,把抓取到的文章整理成通用推送格式:
return items.map(item => {
// 取 content
let content = item.json.choices?.[0]?.message?.content || "";
// 去掉 ```json 开头和 ``` 结尾
content = content.replace(/^```json\s*/, "").replace(/\s*```$/, "");
let parsed;
try {
parsed = JSON.parse(content);
} catch (e) {
parsed = {};
}
return {
json: {
score: parsed.score || 0,
title: parsed.title || "无标题",
summary: parsed.summary || "无",
link: parsed.link || "",
}
};
});
前面的 Limit 我设置的是 2, 所以这里只处理了两条数据:
(五)HTTP Request 节点:发送到平台
- 添加 HTTP Request 节点,连接 Code 节点。
- 配置:
- HTTP Method:POST
- URL:你的飞书 Webhook URL
- Authentication:None
- Headers:Content-Type: application/json
- Body Content Type:JSON
JSON Body 示例:
{
"msg_type": "text",
"content": {
"text": "今日推荐文章\n\n标题:{{$json.title}}\n评分:{{$json.score}}\n摘要:{{$json.summary}}\n阅读原文:{{$json.link}}"
}
}
- 测试节点,成功后即可发送文章到平台。可以在电脑工具栏的飞书图标看到消息提醒:
四、可选优化
- 评分推送:在 Code 节点里接入 AI 模型,对文章进行评分(信息价值、技术深度、是否值得阅读),再按评分排序推送。
- 多源整合:同时抓取多个 RSS 或 API,统一推送。
- 内容美化:可以在 JSON 里加入富文本或 Markdown,使推送消息更漂亮。
- 多平台扩展:飞书只是示例,你可以拓展到企业微信、Slack、Telegram 等。
五、总结
通过 n8n,你可以用 零代码或少量代码 实现内容自动化推送,同时熟悉 n8n 的核心节点和工作流程。
无论是团队技术分享,还是公众号或社区内容推送,这套流程都能快速落地,并且易于扩展。掌握 n8n 并结合大模型处理,你将拥有更强的自动化能力,让日常内容管理更加高效智能。