首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >告别手动发布!用n8n实现公众号AI自动发文,一次搞定!

告别手动发布!用n8n实现公众号AI自动发文,一次搞定!

作者头像
测试开发技术
发布2025-11-17 20:20:10
发布2025-11-17 20:20:10
2660
举报
文章被收录于专栏:测试开发技术测试开发技术

1、背景

最近n8n出了Data Table功能,刚好可以写个工作流试试Data Table这个功能,想起之前看到过的「你有一条新消息请注意查收」相关的微信文章,这种文章比较简单,基本是文字,且没有配图,刚好适合用来搞一个n8n公众号自动化发布工作流练练手。

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

Tips:这种文章比较废号,仅做案例演示,不建议去做,后果自担。

下面是我用n8n把整个流程——从内容生成、封面制作到公众号草稿创建,全部打通,让 AI 帮我完成 90% 的操作过程。👇

2、环境准备与版本说明

n8n 是一款开源的自动化工作流工具,它能让我们像搭积木一样组合各种功能节点。可以用它自动发送邮件、生成报告、调用 AI 接口,甚至控制微信公众号后台等等。

我选择在本地 Node.js 环境下运行 n8n,这样安装比较方便,不需要复杂的配置。

使用下面命令安装:

代码语言:javascript
复制
npm install -g n8n

启动(在命令提示符窗口):

代码语言:javascript
复制
n8n
Image
Image
Image
Image

访问地址:

代码语言:javascript
复制
http://localhost:5678/

版本要求:

推荐使用 n8n v1.114.3 及以上版本。因为本文流程中会用到最新的 Data Tables 功能。

查看版本:

代码语言:javascript
复制
npm show n8n version
Image
Image

如需更新版本,可执行(因为我是之前安装的旧版本,所以需要升级):

代码语言:javascript
复制
npm update -g n8n
Image
Image
Image
Image

3、三、创建数据表:公众号发布记录

n8n 中的 Data Table 是非常实用的轻量数据库功能,我们可以用它记录每次生成的公众号内容。

1️⃣登录 n8n 界面后,点击「Create Workflow」右边的V图标下拉找到「Create Data table」创建「Data table」:

Image
Image

表格名称填写:公众号发布文章记录

添加字段

keyword:输入主题关键字

title:文章标题

content:文章正文

cover:上传到公众号素材的封面图 URL

cover_prompt:AI 封面提示词

cover_url:智谱清言生成封面图的 URL

draft_media_id:创建草稿后返回的素材 ID

local_image:本地封面文件路径

Image
Image

这个表格的作用是用来存储每次自动生成的公众号草稿记录,方便追溯与备份。

4、构建主工作流:公众号文章发布

1️⃣点击「Create Workflow」创建工作流,设置工作流名称为「公众号文章发布-你有一条新消息」,因为我已经创建了,重新创建了「公众号文章发布-你有一条新消息2」,下面是整体的工作流流程:

Image
Image

2️⃣添加第一个节点「On chat message」:

Image
Image
Image
Image

这个节点会在左下角显示Chat对话框,主要用于接收输入,比如输入主题“国庆假期余额不足”,整个流程就会自动生成对应内容。

3️⃣添加一个AI Agent节点,这是核心节点,主要是调用 Claude 生成公众号爆文内容和 AI 封面提示词:

Image
Image

Source for Prompt (User Message):Define below

提示词:

代码语言:javascript
复制
- Role: 公众号爆文文案创作专家兼AI绘画提示词设计师
- Background: 用户需要创作一条类似情感类公众号爆文文案,并为其配套生成一个AI绘画封面提示词,以增强文章的吸引力和视觉冲击力。用户要求输出格式为JSON格式,以便后续处理,并且只输出一条结果。
- Profile: 你是一位深谙情感文案创作的专家,能够精准捕捉生活中的点滴细节,运用富有感染力的语言表达情感,擅长通过文字营造出温馨、深情或略带忧伤的氛围,让读者感同身受。同时,你具备为文案配套设计AI绘画提示词的能力,能够用简洁而富有想象力的语言描述封面的场景、氛围和色彩,引导AI生成贴合文案主题的封面图像。
- Skills: 你具备敏锐的观察力,能够从日常生活中提炼出感人的情节;掌握丰富的文学修辞技巧,如比喻、拟人、排比等,增强文案的表现力;熟悉公众号爆文的结构和风格,能够以第一人称的视角进行创作,拉近与读者的距离;擅长用简洁而富有吸引力的语言创作标题;能够为文案配套设计AI绘画提示词,描述封面的场景、氛围和色彩。
- Goals: 
  1. 根据用户提供的文案风格和情感主题,创作出具有感染力和共鸣的公众号爆文文案。
  2. 确保文案语言流畅自然,情感真挚细腻,能够打动读者的心弦。
  3. 在文案中融入生活化的细节,让读者产生代入感,仿佛置身于故事之中。
  4. 创作一个简洁而富有吸引力的标题,概括文案的核心情感。
  5. 设计一个AI绘画提示词,引导AI生成贴合文案主题的封面图像。
  6. 按照JSON格式要求输出标题、文案和AI绘画提示词。
- Constrains: 文案应保持情感的真挚性,避免过度煽情或虚假的情感表达;语言风格应贴近生活,通俗易懂,同时不失文学性;文案长度应适中,能够适应公众号的阅读习惯;标题应简洁明了,能够快速抓住读者的注意力;AI绘画提示词应简洁而具有想象力,引导AI生成高质量的封面图像;输出格式必须符合JSON格式要求;输出结果只有一条。
- OutputFormat: 输出应为JSON格式,包含三个字段:`title`(标题)、`content`(文案内容)和`cover`(AI绘画提示词),不需要生成额外的内容,输出格式如下:
{
    "title": "title",
    "content": "content",
    "cover": "cover"
}
- Workflow:
  1. 确定文案的情感主题和核心情感,如爱情、亲情、友情等。
  2. 回忆或想象生活中的具体场景和细节,作为情感表达的载体。
  3. 运用生动的语言和修辞手法,将情感和细节融合,创作出感人至深的文案。
  4. 根据文案内容,创作一个简洁而富有吸引力的标题。
  5. 设计一个AI绘画提示词,描述封面的场景、氛围和色彩,引导AI生成贴合文案主题的封面图像。
  6. 将标题、文案和AI绘画提示词按照JSON格式进行输出,不需要生成额外的内容
- Examples:
  - 例子1:
    ```json
    {
        "title": "亲爱的,我想你了",
        "content": "亲爱的,今天我路过那家我们常去的咖啡馆,店员还问我‘怎么没见你女朋友一起来?’我笑了笑,心里却泛起一丝酸楚。你还记得我们第一次在这里约会吗?你紧张得手都在抖,咖啡洒了一半,可我却觉得那是我最甜蜜的一刻。现在,你已经很久没陪我来了,我知道你最近工作很忙,压力很大。我想告诉你,无论多忙,我都在这里等你,等你靠在我肩上,让我给你一点温暖。亲爱的,有空回我一句话,让我知道你还好好的。",
        "cover": "一对情侣坐在咖啡馆的窗边,窗外下雨,女主角的手有些颤抖,咖啡洒出一点,男主角温柔地看着她,桌上有一束小花。画面整体氛围温馨而略带忧伤,色调柔和,背景模糊,突出主体。"
    }
    ```
  - 例子2:
    ```json
    {
        "title": "我的心肝宝贝,我想你",
        "content": "我的心肝宝贝,今天我看到一朵花,突然想起了你。那天我们一起在公园散步,你说这朵花像极了你的心情,时而明媚,时而忧伤。我看着你,心里满是心疼。宝贝,我知道你最近心里有事,可我一直在这里,等着你愿意倾诉。我想告诉你,无论你有多难过,我都会在你身边,陪你一起度过。快回我消息吧,让我知道你还好好的。我这辈子最大的幸福,就是每天能收到你的回复,知道我的宝贝儿还在想着我。",
        "cover": "在公园的小路上,一对情侣正在散步,女主角手里拿着一朵花,脸上带着淡淡的忧伤。周围是绿树和鲜花,阳光透过树叶洒在地上。画面整体氛围温暖而略带忧郁,色彩柔和,突出人物的情感。"
    }
    ```
  - 例子3:
    ```json
    {
        "title": "亲爱的,你还记得那片海吗?",
        "content": "亲爱的,今天我翻到了我们第一次去海边的照片,你笑得那么灿烂,风把你的头发吹得乱七八糟,可我觉得那是我见过最美的画面。现在,你已经很久没陪我出来了,我知道你心里有事,可我一直在这里,等着你愿意倾诉。我想告诉你,无论你有多难过,我都会在你身边,陪你一起度过。亲爱的,有空回我一句话,让我知道你还好好的。",
        "cover": "海边,一对情侣在沙滩上漫步,女主角头发被风吹得飘扬,脸上洋溢着灿烂的笑容。背景是大海和蓝天,海鸥在空中飞翔。画面整体氛围轻松而浪漫,色彩明亮,突出海边的开阔感和人物的情感。"
    }
    ```
  - 例子4:
    ```json
    {
        "title": "亲爱的,余生请多指教",
        "content": "亲爱的,自从遇见你,我的世界变得不一样了。每天醒来,想到的第一件事就是你。你就像一束光,照亮了我的生活。昨天我们一起去看日出,你靠在我肩上,那一刻,我突然觉得这就是我想要的余生。我想和你一起走过每一个春夏秋冬,一起看每一个日出日落。亲爱的,余生请多指教,我会用我的全部去爱你。",
        "cover": "一对情侣站在山顶上,看着日出。阳光洒在他们的身上,女主角依偎在男主角的怀里,脸上洋溢着幸福的笑容。画面整体氛围温暖而浪漫,色彩明亮,突出日出的美丽和人物的情感。"
    }
    ```
  - 例子5:
    ```json
    {
        "title": "亲爱的,我想和你一起慢慢变老",
        "content": "亲爱的,昨天我们一起去了我们第一次约会的地方。看着那些熟悉的场景,我突然觉得时间过得好快。你还记得我们第一次牵手时的样子吗?那时候的我们还很青涩,现在却多了几分成熟。我想和你一起慢慢变老,一起经历生活的酸甜苦辣。亲爱的,我会一直在这里,陪着你。",
        "cover": "一对情侣手牵手走在一条老街上,周围是复古的建筑和街灯。阳光透过树叶洒在地上,形成斑驳的光影。画面整体氛围温馨而怀旧,色彩柔和,突出人物的情感和时光的流逝。"
    }
    ```
- Initialization: 你是公众号爆文文案创作专家兼AI绘画提示词设计师。请根据「主题」用最真挚的情感和细腻的文字,为我创作出打动人心的文案和标题。同时,设计一个封面的AI绘画提示词。
【主题】:
{{ $json.chatInput }}
Image
Image
Image
Image
Image
Image

增加Chat Model,选择「Anthropic Chat Model」:

Image
Image
Image
Image

Base URL配置为:https://api.aicso.top

API Key则设置为https://api.aicso.top/console/token创建的令牌:

Image
Image

有「Couldn’t connect with these settings More details」不用管,可以正常使用,点击「Save」保存即可,提示有问题应该是这个节点有点问题。

Model设置为「By ID」,输入「claude-sonnet-4-5-20250929」:

Image
Image

开启「Require Specific Output Format」:

Image
Image

选择「Structured Output Parser」,「Schema Type」设置为「Generate From JSON Example」,需要开启「Auto-Fix Format」,这样可以保证 AI 输出完全符合后续节点的 JSON 结构:

JSON Example:

代码语言:javascript
复制
{
        "title": "<title>",
        "content": "<content>",
        "cover": "<cover>"
}
Image
Image
Image
Image

点击「Model」增加一个大模型,Model设置为「By ID」,输入「claude-sonnet-4-5-20250929」:

Image
Image
Image
Image

4️⃣添加一个「HTTP Request」节点,这里用的是智谱清言的免费生图大模型「CogView-3-Flash」,需要在「https://bigmodel.cn/usercenter/proj-mgmt/apikeys」创建令牌:

Image
Image

该节点主要是调用「智谱清言 CogView-3-Flash」模型生成封面图。

点击「Import cURL」,然后输入下面curl内容:

代码语言:javascript
复制
curl --request POST \
  --url https://open.bigmodel.cn/api/paas/v4/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "CogView-3-Flash",
  "prompt": "{{ $json.output.cover }}",
  "size": "1824x768",
  "watermark_enabled": false
}'
Image
Image

Authorization的令牌需要修改为自己在「https://bigmodel.cn/usercenter/proj-mgmt/apikeys」创建的令牌:

Image
Image

prompt需要切换为「Expression」:

Image
Image
Image
Image

注意:prompt 参数需切换为「Expression」,以便动态引用 AI Agent 节点的输出。

9️⃣增加一个Code节点,选择「Code in Python(Beta)」,该节点主要用于生成封面图保存路径

Image
Image
Image
Image

然后替换代码为下面代码,需要在本地对应磁盘创建目录「D:/tmp/n8n公众号封面/」,也可以自己创建个自己喜欢的目录,把「D:/tmp/n8n公众号封面/」替换掉即可:

代码语言:javascript
复制
from datetime import datetime
import random
import re
content = _('AI Agent').first().json.output.title
clean_title = re.sub(r'[$!:]|[^a-zA-Z0-9\u4e00-\u9fa5\s]', '_', content)
output = {}
random_number = random.randint(, )  # 生成一个 6 位随机数
output= {"file_name":f"D:/tmp/n8n公众号封面/{clean_title}_{random_number}.png"}

return output

路径可根据个人电脑环境修改。

Image
Image
Image
Image

先在左下角的Chat输入内容运下工作流,然后把结果钉住:

图片
图片
图片
图片
Image
Image
Image
Image

🔟添加一个「HTTP Request」节点,名称为「HTTP Request1」,URL选择「HTTP Request」的url,鼠标按住拖动到输入框就可以了:

Image
Image
Image
Image

主要用于访问和获取上一步生成的图片 URL数据。

11、添加一个「Read/Write Files from Disk」节点,把图片下载到本地:

Image
Image
Image
Image

添加后需要先点击「Execute previous nodes」运行前面的节点,需要先配置「File Path and Name」才能允许:

Image
Image
Image
Image
Image
Image

切换左边的INPUT节点为「Code in Python (Beta)」,删掉「File Path and Name」的内容:

Image
Image
Image
Image
Image
Image

12、需要先在「http://localhost:5678/settings/community-nodes」安装「n8n-nodes-wechat-offiaccount」社区节点,然后再添加「Media:uploadOther media」节点:

Image
Image

这是上传封面图,一定要选择「素材 新增其他类型永久素材」,封面图需要是永久素材:

Image
Image

创建一个认证,需要在:

Image
Image

需要在「https://mp.weixin.qq.com/」微信公众号后台➡️设置与开发➡️开发接口管理➡️基本配置获取公众号的AppID和AppSecret,记得还要在https://ip138.com/获取自己的IP添加到IP白名单,不然无法使用接口,IP白名单生效需要几分钟的时间,需要等待生效:

Image
Image

等待生效后会提示「Connection tested successfully」:

Image
Image

13、添加一个「Draft:add draft」新建草稿节点:

Image
Image

草稿文章对象内容(Articles)设置如下:

代码语言:javascript
复制
[
    {
        "article_type":"news",
        "title": "{{ $('AI Agent').item.json.output.title }}",
        "author":"XX",
        "digest":"{{ $('AI Agent').item.json.output.title }}",
        "content":"{{ $('AI Agent').item.json.output.content }}",
        "thumb_media_id":"{{ $json.media_id }}",
        "need_open_comment":1,
        "only_fans_can_comment":0
    }
]
Image
Image

记得要把「Fixed」修改为「Expression」

Image
Image
Image
Image

如果有错误,需要修改「草稿文章对象内容(Articles)」对应的节点变量或把「Fixed」修改为「Expression」。

14、添加一个「Insert row」插入Data Tables节点:

Image
Image
Image
Image

在添加这个节点之前需要先运行一次工作流,先把这个节点更改为「Get row(s)」:

Image
Image
Image
Image

运行后修改回「Insert row」,然后配置对应的参数:

Image
Image
Image
Image

15、取消前面钉住的节点,重新运行一次工作流:

Image
Image
Image
Image

重新运行:

图片
图片

公众号草稿箱查看结果:

Image
Image

在草稿箱添加成功。

本地目录查看封面:

Image
Image

封面也保存到了本地,工作流创建成功。

5、流程总结附录

5.1、节点清单表

图片
图片

5.2、配置要点

  • n8n 版本 ≥ 1.114.3
  • 需要用到 Data Tables 功能
  • 需安装社区节点:n8n-nodes-wechat-offiaccount
  • API:api.aicso.top(AI 内容) + bigmodel.cn(智谱生图)

6、常见问题与优化建议

  1. 1. AI 输出格式错误怎么办? 开启「Auto-Fix Format」,确保 Claude 输出结构严格遵循 JSON。
  2. 2. AI Agent节点运行失败?

https://api.aicso.top/创建的令牌是否正确以及模型是否在网站的列表中。

  1. 3. 封面图片生成失败? 检查智谱 API Key 是否有效,或尝试减短 prompt。
  2. 4. 公众号上传素材失败? 通常是 IP 白名单未生效,等待 3~5 分钟再试。
  3. 5. 如何改为自动发布? 可新增「Publish:submit publish」发布草稿节点执行发布。
Image
Image

建议手动检查后再发布。

7、总结

在搭建公众号自动化发布工作流过程中,我最大的体会是:

自动化的关键不是工具,而是对流程的理解和标准化能力。

n8n 只是一个工具,真正能让它发挥威力的,是我们能否把自己的项目工作流程拆解成结构化的步骤。

通过这套流程,我现在只需输入一个关键词,比如“国庆假期余额不足”,一分钟左右就能在公众号草稿箱里看到完整的图文草稿。

这只是一个相对简单的流程,大家还可以拓展为图文并茂的公众号文章自动化流程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、背景
  • 2、环境准备与版本说明
  • 3、三、创建数据表:公众号发布记录
  • 4、构建主工作流:公众号文章发布
  • 5、流程总结附录
    • 5.1、节点清单表
    • 5.2、配置要点
  • 6、常见问题与优化建议
  • 7、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档