day23-微信公众号
微信公众号工作流
目标:打造一个AI生成内容并自动发布公众号的工作流
一、准备工作
如何在n8n中安装公众号节点?
首先需要安装一个公众号的节点,这个节点是根据微信开放文档开发的,基本支持了所有的微信公众号接口,文档地址:https://www.npmjs.com/package/n8n-nodes-wechat-offiaccount?activeTab=dependencies。我们可以借助这个节点实现微信公众号内容的自动发布,进入这个节点文档的介绍页面,找到安装命令,命令如下:
npm i n8n-nodes-wechat-offiaccount
申请一个大模型的api
由于n8n中没有自带大模型,因此我们需要自己接入大模型,这里我们使用Deepseek大模型。
Deepseek官网地址:https://www.deepseek.com/
我们打开这个网站,注册成功之后,找到这个地方
然后选择充值:
进行API keys的申请:
申请好的API key切记要保存到一个任何的一个文件中:
申请一个免费的图像生成模型
因为公众号发布接口有个配图是必填的,所以这边我需要一个图像生成的模型,我使用的阿里云百炼的通义万相模型,因为阿里有活动,新用户免费赠送每个模型100万token。我们进入https://bailian.console.aliyun.com/阿里云百炼官网,没账号的注册一下,登录之后,找到【模型服务】
左下角找到【秘钥管理】
在右上角新建一个密钥,把密钥保存下来
二、用n8n搭建一个自动生成文章并自动发布公众号的工作流
接下来我们开始一步一步搭建工作流
1、触发节点
触发节点就是工作流的开始节点,n8n支持多种不同的方式触发工作流,为了调试方便,我选择Chat Trigger节点,这个节点的作用就是接收一条聊天框输入的信息。
2、大模型节点
有了输入的信息,接下来就需要有大模型来处理,我们点击触发节点右边的加号,然后搜索AI agent 节点,加进来
Agent智能体:
- 大模型(Model):用于驱动Agent
- 记忆模块(Memory):用于实现让Agent具备长期或者短期的记忆能力
- 工具(Tool):用来真正干活的工具。
这个时候会发现,这个节点有报错显示,那是因为有个核心的大模型节点没有配置,我们在Chat Model这里点击“+”号,接着搜索一下“deepseek”
进行deepseek模型凭证创建:
在凭证中录入deepseek模型的api key后保存凭证:
然后选择模型:
3、配置大模型节点
接着我们双击AI Agent 节点,配置一下参数和系统提示词,如下图,因为我们用的是聊天触发的节点,可以直接选择Connectted Chat Trigger Node 这个选项,会自动把参数带进来。
接着我们点击下面的 Add option,选择 System Message,这个是配置系统提示词的。
填写系统提示词:
任务:根据用户提供的主题,生成三个部分:
1. 文章标题(中文,吸引人)
2. 文章内容(中文,500字左右)
3. 图像生成提示词(英文,用于Stable Diffusion或其他模型)
到这里,大模型基本就可以用了,直接找到左下角的聊天输入框,输入内容进行测试,看到正常的返回,说明配置成功了:
4、如何格式化输出内容?(重要知识点)
我们前面只是简单的打通了大模型和回复,接下来,由于我们在后续添加公众号的时候,还需要标题、配图等等,而我们现在这种单纯输出内容是不行的,因此我们还要学习一下如何让大模型格式化输出多个不同的内容。
双击AI Agent 节点,打开这个开关,就是对输出进行格式化
打开之后,这个节点会多出来一个节点,我们点击添加一下这个结构化输出的节点
接着我们按照下图配置一下这个节点,就是给大模型一个输出的示例
{
"title": "爆款标题",
"content": "文章正文内容",
"image_prompt": "完整的Stable Diffusion提示词,英文,逗号分隔,包含:质量词+主体+环境+风格+技术参数"
}
配置完成之后,回到AI Agent节点,重新执行,我们就能看到,大模型按照我们的需要的格式输出了。
5、添加配图大模型
我们再次进入阿里云百炼的网站,找到模型广场https://bailian.console.aliyun.com/?tab=model#/model-market/all
然后点击筛选,选择图片生成,找到下面这个模型:
进入模型的API参考页面,复制修改http调用的curl请求信息:

将curl中的\(DASHSCOPE_API_KEY 替换成我们之前在阿里云百炼创建的 apikey,最后把完整代码保存。**这里需要注意,Bearer和\)DASHSCOPE_API_KEY之间是有空格的,不要擅自删除了**。
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer 自己的API KEY \
--data '{
"model": "qwen-image-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"text": "一副典雅庄重的对联悬挂于厅堂之中,房间是个安静古典的中式布置,桌子上放着一些青花瓷,对联上左书“义本生知人机同道善思新”,右书“通云赋智乾坤启数高志远”, 横批“智启通义”,字体飘逸,在中间挂着一幅中国风的画作,内容是岳阳楼。"
}
]
}
]
},
"parameters": {
"negative_prompt": "",
"prompt_extend": true,
"watermark": false,
"size": "1328*1328"
}
}'
接着我们进回到n8n 在大模型节点之后,添加一个 http 请求的节点,如下:
双击进入节点配置里,进行节点配置:
-
请求方式:POST
-
请求url:可以从curl中提取
https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation -
请求头:可以从curl中提取,--header后面的内容
-
请求体:可以从curl中提取,--data后面的内容
{ "model": "qwen-image-plus", "input": { "messages": [ { "role": "user", "content": [ { "text": "{{ $json.output.image_prompt }}" } ] } ] }, "parameters": { "negative_prompt": "", "prompt_extend": true, "watermark": false, "size": "1328*1328" } }
6、配置公众号凭据
注册公众号
-
访问网址进行扫码登录:https://mp.weixin.qq.com/
-
请选择注册的账号类型:公众号
-
填写相关信息即可
公众号接口授权
调用公众号接口需要授权的,因此需要先配置一下公众号的调用凭据,左上角有个“+”号点击,然后选择创建凭据,如下图:

然后搜索wechat ,找到公众号节点的凭据
接着登录自己的公众号,找到【设置与开发】下面的【开发接口管理】:
注册小程序账号:
我的业务选择公众号:
启动开发秘钥:保存好appsecret
添加白名单:这个白名单ip就是你n8n所在服务器的ip。如果是云服务器部署就是服务器的ip,如果是本地部署的,就查一下自己本地的公网ip
现在可以在n8n中进行公众号凭证的添加了!
7、如何将URL的图片转换上传?(知识点)
因为公众号的接口发文的时候,配图是必填的,而一般我们在公众号后台上传接口接收的都是file数据,也就是我们经常看到的,通过组件点击选择图片上传!但是,大模型一般生成的图片都是一个url链接,因此我们需要进行数据转换。
当我们获得的是url图片地址的时候,可以使用Http request 节点直接下载转换成file ,以供后续的上传调用
直接在图片生成后面新增一个Http请求的节点:
双击进入节点配置,首先我们把上一步图片生成的url,传入当前节点请求的url,然后再新增一个response的选项,这个response代表的是请求返回的数据。
接着我们需要对返回数据做转换,找到新增的response配置项,点击response format(返回数据格式化)选项,选择file。意思就是,将我们下载的图片格式化为二进制文件输出(因为一般上传需要的是这种格式)
接着运行测试,出现以下内容,说明下载成功:
8、微信配图上传
终于可以开始操作公众号了,首先,我们需要把前面的配图上传到公众号的素材库,以便于文章发布时调用。我们在刚刚的Http下载节点后面添加【新增其他类型永久素材】节点:

接着点击配置节点,确认一下我们链接凭证是否选择了之前第6步配置的凭证
没问题之后试运行,出现以下结果,说明配置成功:
9、添加文章到草稿
最后一步啦,添加【新建草稿节点】:
双击进入配置,把前面AI生成的标题、内容以及上一步上传获得的media_id分别对应到如下参数中:
[
{
"article_type":"news",
"title":{{ $('AI Agent').item.json.output.title.toJsonString() }},
"author":"Bobo的AI助手",
"content":{{ $('AI Agent').item.json.output.content.toJsonString() }},
"thumb_media_id":"{{ $json.media_id }}",
"show_cover_pic":1,
"need_open_comment":1,
"only_fans_can_comment":0,
"auto_publish":false,
"publish_time":"immediate"
}
]
代码里面的参数介绍:
article_type: 文章类型,设置为"news"表示文章消息
title: 文章标题,使用toJsonString()方法确保JSON格式正确
author: 文章作者信息
content: 文章正文内容,使用toJsonString()方法处理特殊字符
thumb_media_id: 封面图片的媒体ID,来自上传图片素材步骤
show_cover_pic: 是否显示封面图片(1=显示,0=不显示)
need_open_comment: 是否开启评论功能(1=开启,0=关闭)
only_fans_can_comment: 评论权限(1=仅粉丝,0=所有人)
auto_publish: 自动发布设置(false=创建草稿,true=立即发布)
publish_time: 发布时间("immediate"=立即发布)
到公众号看一下草稿箱,成功录入啦
如果有需要直接发布,可以在添加草稿后面,加上发布草稿节点,不过稳妥起见,我觉得还是批量发布到草稿箱,然后人工修改审核一下发出去,AI发挥不稳定的。

浙公网安备 33010602011771号