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/

我们打开这个网站,注册成功之后,找到这个地方

image-20251229085309805

然后选择充值:

image-20251229085346006

进行API keys的申请:

image-20251229085458445

申请好的API key切记要保存到一个任何的一个文件中:

image-20251229085524115

申请一个免费的图像生成模型

因为公众号发布接口有个配图是必填的,所以这边我需要一个图像生成的模型,我使用的阿里云百炼的通义万相模型,因为阿里有活动,新用户免费赠送每个模型100万token。我们进入https://bailian.console.aliyun.com/阿里云百炼官网,没账号的注册一下,登录之后,找到【模型服务】

image-20251229090101390

左下角找到【秘钥管理】

image-20251229090153469

在右上角新建一个密钥,把密钥保存下来

image-20251229090217210

二、用n8n搭建一个自动生成文章并自动发布公众号的工作流

接下来我们开始一步一步搭建工作流

1、触发节点

触发节点就是工作流的开始节点,n8n支持多种不同的方式触发工作流,为了调试方便,我选择Chat Trigger节点,这个节点的作用就是接收一条聊天框输入的信息。

image-20251229091058673 image-20251229091122588

2、大模型节点

有了输入的信息,接下来就需要有大模型来处理,我们点击触发节点右边的加号,然后搜索AI agent 节点,加进来

image-20251229091206121
Agent智能体:
- 大模型(Model):用于驱动Agent
- 记忆模块(Memory):用于实现让Agent具备长期或者短期的记忆能力
- 工具(Tool):用来真正干活的工具。

这个时候会发现,这个节点有报错显示,那是因为有个核心的大模型节点没有配置,我们在Chat Model这里点击“+”号,接着搜索一下“deepseek”

image-20251229091428327

进行deepseek模型凭证创建:

image-20251229091525891

在凭证中录入deepseek模型的api key后保存凭证:

image-20251229091659286

然后选择模型:

image-20251229091736571

3、配置大模型节点

接着我们双击AI Agent 节点,配置一下参数和系统提示词,如下图,因为我们用的是聊天触发的节点,可以直接选择Connectted Chat Trigger Node 这个选项,会自动把参数带进来。

接着我们点击下面的 Add option,选择 System Message,这个是配置系统提示词的。

image-20251229091929706

填写系统提示词:

image-20251229100843839
任务:根据用户提供的主题,生成三个部分:
1. 文章标题(中文,吸引人)
2. 文章内容(中文,500字左右)
3. 图像生成提示词(英文,用于Stable Diffusion或其他模型)

到这里,大模型基本就可以用了,直接找到左下角的聊天输入框,输入内容进行测试,看到正常的返回,说明配置成功了:

image-20251229092308425

4、如何格式化输出内容?(重要知识点)

我们前面只是简单的打通了大模型和回复,接下来,由于我们在后续添加公众号的时候,还需要标题、配图等等,而我们现在这种单纯输出内容是不行的,因此我们还要学习一下如何让大模型格式化输出多个不同的内容。

双击AI Agent 节点,打开这个开关,就是对输出进行格式化

image-20251229092411370

打开之后,这个节点会多出来一个节点,我们点击添加一下这个结构化输出的节点

image-20251229092553963

接着我们按照下图配置一下这个节点,就是给大模型一个输出的示例

image-20251229093024715
{
  "title": "爆款标题",
  "content": "文章正文内容",
  "image_prompt": "完整的Stable Diffusion提示词,英文,逗号分隔,包含:质量词+主体+环境+风格+技术参数"
}

配置完成之后,回到AI Agent节点,重新执行,我们就能看到,大模型按照我们的需要的格式输出了。

5、添加配图大模型

我们再次进入阿里云百炼的网站,找到模型广场https://bailian.console.aliyun.com/?tab=model#/model-market/all

image-20251229101216029

然后点击筛选,选择图片生成,找到下面这个模型:

image-20251229101719093

进入模型的API参考页面,复制修改http调用的curl请求信息:

image-20251229101947589

将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 请求的节点,如下:

image-20251229102141531

双击进入节点配置里,进行节点配置:

  • 请求方式:POST

  • 请求url:可以从curl中提取https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

  • 请求头:可以从curl中提取,--header后面的内容

    image-20251229110612728
  • 请求体:可以从curl中提取,--data后面的内容

    image-20251229110839816
    {
        "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/

  • 请选择注册的账号类型:公众号

    image-20251229112926140
  • 填写相关信息即可

公众号接口授权

调用公众号接口需要授权的,因此需要先配置一下公众号的调用凭据,左上角有个“+”号点击,然后选择创建凭据,如下图:

image-20251229111309522

然后搜索wechat ,找到公众号节点的凭据

image-20251229111401050

接着登录自己的公众号,找到【设置与开发】下面的【开发接口管理】:

image-20251229140003126 image-20251229140027953 image-20251229140105982

注册小程序账号:

image-20251229140138862

我的业务选择公众号:

image-20251229141618065

启动开发秘钥:保存好appsecret

image-20251229141653049

添加白名单:这个白名单ip就是你n8n所在服务器的ip。如果是云服务器部署就是服务器的ip,如果是本地部署的,就查一下自己本地的公网ip

image-20251229142010273

现在可以在n8n中进行公众号凭证的添加了!

7、如何将URL的图片转换上传?(知识点)

因为公众号的接口发文的时候,配图是必填的,而一般我们在公众号后台上传接口接收的都是file数据,也就是我们经常看到的,通过组件点击选择图片上传!但是,大模型一般生成的图片都是一个url链接,因此我们需要进行数据转换。

当我们获得的是url图片地址的时候,可以使用Http request 节点直接下载转换成file ,以供后续的上传调用

直接在图片生成后面新增一个Http请求的节点:

image-20251229142925126

双击进入节点配置,首先我们把上一步图片生成的url,传入当前节点请求的url,然后再新增一个response的选项,这个response代表的是请求返回的数据。

image-20251229143327087

接着我们需要对返回数据做转换,找到新增的response配置项,点击response format(返回数据格式化)选项,选择file。意思就是,将我们下载的图片格式化为二进制文件输出(因为一般上传需要的是这种格式)

image-20251229143444469

接着运行测试,出现以下内容,说明下载成功:

image-20251229143527432

8、微信配图上传

终于可以开始操作公众号了,首先,我们需要把前面的配图上传到公众号的素材库,以便于文章发布时调用。我们在刚刚的Http下载节点后面添加【新增其他类型永久素材】节点:

image-20251229143708012

image-20251229143801516

接着点击配置节点,确认一下我们链接凭证是否选择了之前第6步配置的凭证

image-20251229143950905

没问题之后试运行,出现以下结果,说明配置成功:

image-20251229144017774

9、添加文章到草稿

最后一步啦,添加【新建草稿节点】:

image-20251229144152028

双击进入配置,把前面AI生成的标题、内容以及上一步上传获得的media_id分别对应到如下参数中:

image-20251229145155457
[
    {
        "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"=立即发布)

到公众号看一下草稿箱,成功录入啦

image-20251229145331216

如果有需要直接发布,可以在添加草稿后面,加上发布草稿节点,不过稳妥起见,我觉得还是批量发布到草稿箱,然后人工修改审核一下发出去,AI发挥不稳定的。

posted @ 2026-01-06 16:46  凫弥  阅读(69)  评论(0)    收藏  举报