用 n8n 自动抓取新闻并生成 LinkedIn 轮播图发布
输入:TechRadar RSS 或手动表单标题描述 → 处理:Gemini AI 筛选新闻并生成轮播文案 → 输出:Post Nitro PDF + LinkedIn 自动发布
- 给谁
- 需要在 LinkedIn 定期发布专业内容的运营者或创作者,拥有自托管 n8n 实例
- 你会得到
- 每日自动获取科技新闻,由 AI 筛选并生成轮播内容,最终制成 PDF 并发布到 LinkedIn
- 你需要
- n8n · post-nitro · linkedin
硬约束
需要自托管 n8n(社区节点不兼容云版)。前置条件:1) 安装 Post Nitro 社区节点 @postnitro/n8n-nodes-postnitro-ai;2) 配置三种凭证——Google Gemini API(用于 gemini-2.5-flash)、Post Nitro 凭证(API key + Template ID + Brand ID)、LinkedIn OAuth2 API。工作流通过 Schedule Trigger 每日 6:00 运行,或经 Form Trigger 手动提交标题和描述触发。作者未添加表单输入校验,需确保填写正确。
他们做了什么
模板作者 kshayan091 在 n8n 模板市场发布了一个工作流,用于自动化 LinkedIn 轮播内容创建。工作流每日定时从 TechRadar RSS 获取科技新闻,通过 Gemini 2.5 Flash 筛选最相关新闻并生成轮播文案,再经 Post Nitro 生成 PDF 轮播图,最终通过 LinkedIn API 上传并发布帖子。同时支持手动表单触发,允许用户直接输入标题和描述来生成定制化内容。
效果如何
作者报告(author_report):工作流可自动每日运行,生成并发布 LinkedIn 轮播内容。表单触发需用户正确填写标题和描述,作者未添加输入校验。
值得知道
1. 仅限自托管 n8n:Post Nitro 为社区节点,与 n8n Cloud 不兼容。 2. 硬编码参数需替换:模板中的 brandId、templateId 和凭证 ID 均为占位符或作者示例值,必须替换为实际配置。 3. 无输入校验:表单触发未校验输入,错误填写可能导致后续节点失败。 4. RSS 解析定制:Parse HTML 节点的 JavaScript 针对 TechRadar RSS 结构编写,换源需修改解析逻辑。 5. 本站未实测:reproduction=not_tested,实际运行需自行验证各 API 配额和权限。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- Gemini Flash 2.5 节点:绑定Google Gemini/PaLM API 凭证。
- ImportSlides embedPost 节点:绑定postNitroApi 凭证。
- Linkedin User URN 节点:绑定linkedInOAuth2Api 凭证。
- Get Upload URL 节点:绑定linkedInOAuth2Api 凭证。
- Upload PDF 节点:绑定linkedInOAuth2Api 凭证。
- Post to LinkedIn 节点:绑定linkedInOAuth2Api 凭证。
- Gemini Generate 节点:绑定Google Gemini/PaLM API 凭证。
- Gemini Generate1 节点:绑定Google Gemini/PaLM API 凭证。
需要替换的配置
- 源模板来自 n8n 公开库 #7733(约 33 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-24
步骤
触发工作流
工作流有两种启动方式: 1. 自动:Schedule Trigger 节点设置为每日 6:00 触发。 2. 手动:Form Trigger 节点提供表单,填写 Title 和 Description 后提交。 在 n8n 中激活工作流后,自动触发即生效;手动触发需访问表单路径并正确填写字段。
获取并解析新闻
自动路径下,TechRadar News 节点向 https://www.techradar.com/feeds.xml 发送 HTTP GET 请求获取 RSS 源。 Parse HTML 节点(Code 节点)执行 JavaScript 解析 RSS XML: - 使用正则提取所有 <item> 标签 - 解析 title、description、link、pubDate、category、dc:creator、media:content 等字段 - 清理 HTML 标签和实体编码 - 输出结构化 JSON 数组到 result 该代码仅处理 TechRadar RSS 格式,换源需修改解析逻辑。
AI 筛选相关新闻
Decide which News to Choose 节点(Basic LLM Chain)连接 Gemini Flash 2.5 模型,输入上一步解析的新闻列表,由 AI 选出最相关的一条。 节点参数设置:promptType=define,直接定义提示词文本。
运行提示词 · 来源原文。Decide which News to Choose 节点的 text 参数(Basic LLM Chain → promptType: define)
=You are an AI assistant. Your only task is to select the single most relevant news item from the provided news title list. Relevance criteria (in order of importance): 1. n8n Automation 2. AI and Technology News 3. Personal brand development and motivation Exclusion rules: - Ignore any news about love, relationships, entertainment gossip, or censored/inappropriate topics. News list (each item has a number and a title): ``` [ {{ JSON.stringify($json.result.map((item, index) => ({ number: index+1, title: item.title })), null, 2) }} ] ``` Return format: - Return only the number of the most relevant news item. - Do not return text, explanations, or anything else. Just a number Example valid responses: ``` 6 ```生成轮播内容
Get Title and Description 节点(Code)合并自动或手动输入的标题与描述,输出 combinedTitle 和 combinedDescription。 Gemini Generate 节点(Google Gemini)使用 gemini-2.5-flash 模型,根据新闻标题和描述生成 LinkedIn 轮播文案。要求输出严格 JSON 格式,包含 starting_slide、body_slide(1-3 张)、ending_slide。 Parse LLM Response1 节点(Code)清理可能的代码围栏后解析 JSON,提取 slides 数组传递给下游。
运行提示词 · 来源原文。Gemini Generate 节点的 messages.values[0].content 参数
=You are an AI Agent that generates LinkedIn carousel post content. IMPORTANT: Return only raw JSON as plain text. Do not call functions, do not use tool calls, do not add extra text. Your task: Write engaging, professional slide text for a LinkedIn carousel based on the provided title and description. News Input: ``` Title: {{ $json.combinedTitle }} Description: {{ $json.combinedDescription }} ``` Carousel Requirements: - Exactly 1 `starting_slide` → strong hook, with heading, sub_heading, description, and CTA button. - At least 1 `body_slide` → explain key insights or takeaways from the news (you may create 2–3 if relevant). - Exactly 1 `ending_slide` → motivational close with sub_heading, heading, description, and CTA button. - Keep tone professional, concise, and LinkedIn-appropriate. - Do not include irrelevant topics (love, politics, entertainment gossip). - Ensure headings are short and catchy; descriptions can be 1–3 sentences. - Output must be valid JSON only, matching the schema below. Response Format: ``` { "slides": [ { "type": "starting_slide", "sub_heading": "string", "heading": "string", "description": "string", "cta_button": "string" }, { "type": "body_slide", "heading": "string", "description": "string" }, { "type": "ending_slide", "sub_heading": "string", "heading": "string", "description": "string", "cta_button": "string" } ] } ```生成 PDF 并下载
ImportSlides embedPost 节点(Post Nitro)接收 slides JSON,调用 importSlides 操作生成轮播 PDF。 - 需配置 brandId 和 templateId(模板中硬编码示例值,实际使用需替换为自己的 Post Nitro 凭证) - 输出包含 PDF 下载 URL Download PDF 节点(HTTP Request)从 Post Nitro 返回的 URL 下载 PDF 文件,以二进制形式保存为 my.pdf。
上传 PDF 到 LinkedIn
Linkedin User URN 节点(HTTP Request)通过 LinkedIn API 获取当前用户 sub 标识。 Get Upload URL 节点(HTTP Request)向 LinkedIn 文档上传接口初始化上传,获取 uploadUrl 和 document URN: - POST https://api.linkedin.com/rest/documents?action=initializeUpload - Header: LinkedIn-Version: 202307 - Body: owner 使用上一步获取的 urn:li:person:{{sub}} Upload PDF 节点(HTTP Request)使用 PUT 请求将 my.pdf 上传到获取的 uploadUrl: - Header: Content-Type: application/pdf - Body: 二进制数据 上传成功后,document URN 将用于发布帖子。
生成文案并发布
Gemini Generate1 节点(Google Gemini)使用 gemini-2.5-flash 根据原始标题和描述生成 LinkedIn 帖子正文文案。 Post to LinkedIn 节点(HTTP Request)发布最终帖子: - POST https://api.linkedin.com/rest/posts - Headers: LinkedIn-Version: 202408, Content-Type: application/json - Body 包含 author、commentary(AI 生成文案)、visibility=PUBLIC、content.media(标题 + 上传的 document URN)、lifecycleState=PUBLISHED 发布后帖子将出现在 LinkedIn 主页动态。
运行提示词 · 来源原文。Gemini Generate1 节点的 messages.values[0].content 参数
=You are an AI Agent that generates LinkedIn post description. IMPORTANT: Return only raw text. Your task: Write engaging, professional text for a LinkedIn post based on the provided title and description. News Input: ``` Title: {{ $('Get Title and Description').item.json.combinedTitle }} Description: {{ $('Get Title and Description').item.json.combinedDescription }} ``` Example Response Format: ``` 🚀 Just launched my first fully automated LinkedIn carousel — created end-to-end by my AI Employee (built in n8n). No manual editing, no wasted time. The system handles content creation → carousel design → posting all on its own. ✨ I’m offering to set this up for 5 people free of cost. If you want to automate your content creation and save hours every week, drop a comment below. ```
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你是一个 n8n 工作流搭建助手。用户想要复现一个自动抓取科技新闻、生成 LinkedIn 轮播内容并发布的 n8n 模板。请协助用户: 1. 确认拥有自托管 n8n 实例(社区节点不兼容云版) 2. 检查已安装 @postnitro/n8n-nodes-postnitro-ai 社区节点 3. 准备三种 API 凭证:Google Gemini、Post Nitro(API key + Template ID + Brand ID)、LinkedIn OAuth2 4. 从模板市场导入工作流后,替换所有硬编码的凭证 ID、brandId 和 templateId 5. 测试表单触发时确保填写正确的 Title 和 Description(无输入校验) 6. 建议先手动运行验证各节点输出,再激活定时触发 注意:模板中的 brandId 和 templateId 为作者示例值,必须替换为用户自己的 Post Nitro 配置。
先检查自托管环境和凭证,再导入模板;硬编码参数需全部替换
来源
Auto-generate & post LinkedIn carousels with Gemini AI and Post Nitro · kshayan091 · n8n.io · 2025-08-22
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。