2025 年 GitHub 上最火的开源项目之一 n8n 成为了技术爱好者的自动化利器。
本文将手把手教你如何用 n8n 搭建一个 内容自动推送流程 ,让你在实践中熟悉 n8n 的工作方式和核心节点。
希望这个小例子能够抛砖引玉,引起你对 n8n 的兴趣,并继续探索它模块中的强大功能,帮助你实现脑中的奇思妙想~
先看下最终产出结果:
n8n 中的工作流:
飞书中带评分的文章推荐:
一、准备工作 在开始之前,你需要准备以下内容:
可以选择本地 Docker 部署,也可以使用 n8n.cloud 云端服务。(本例选用后者)
如果是本地部署,确保 Docker 已安装并可正常运行。
官方提供的云端版,可以直接在浏览器访问,无需自己部署。地址: https://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) 如果你希望自动评分文章或生成摘要,可准备一个大模型 API,例如 OpenAI、千问大模型等,并准备好 API-KEY 。 二、n8n 流程设计概览 我们要实现的流程大致如下:
HTTP Request → Code :调用大语言模型给文章评分,并返回可用的数据结构 HTTP Request :发送消息到目标平台(以飞书为例) 三、详细步骤 (一)Schedule Trigger 节点:定时触发 拖一个 Schedule Trigger 节点到工作区。 (二)RSS Read 节点:获取文章 添加 RSS Read 节点,连接 Schedule Trigger 节点。 配置 RSS URL,例如 https://www.smashingmagazine.com/feed/ 。 添加 Limit 节点,建议设置 Max Items: 10,先抓取最近 10 条文章。 (三)HTTP Request 节点:调用大语言模型(难点) 这个步骤需要将抓取到的文章数据通过请求 body 传给大模型,并让它返回理想的数据格式。
不同的模型请求的格式基本一样,只是 URL 与 model 有所不同。
Specify Headers: Using JSON, 并填入如下代码: { "Authorization" : "Bearer " , "Content-Type" : "application/json" , "Accept" : "application/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 } } }} 备注:这里我调试了很久才把 prompt 的格式调整对,如果返回值不对,需要多查看下配置信息是否填对。或者使用 postman 先进行请求测试,排除 n8n 格式不当导致的请求不成功。
(四)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 节点。 Headers:Content-Type: application/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 并结合大模型处理,你将拥有更强的自动化能力,让日常内容管理更加高效智能。
- E N D -
如果您关注前端+AI 相关领域可以扫码进群交流
添加小编微信进群😊
关于奇舞团 奇舞团是 360 集团最大的大前端团队,非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。