一、实现目标 本文主要的目的是实现文案生成+自动排版+发布微信公众号平台(草稿),先看下效果:注:图片、内容排版均是自动生成,没有任何改动。

二、工作流搭建1.整体工作流

2.工作流说明:
- AI Agent:用到了两次,一次是生成标题、文案、文生图提示词,一次是文案排版;
- 即梦:根据提示词生成图片;
- Http Request:下载图片,二进制形式;
- Edit Fields:文案的模板内容;
- Code:封装微信需要的内容格式;
- 微信公众号:素材上传、草稿上传;
3.关键节点说明3.1 对话接收通过对话的形式接收用户要创作的内容,插入节点。


3.2 AI Agent节点(生成文案) 插入AI Agent节点,设置用户提示词、系统提示词、模型等关键信息,可以参考文案党狂喜!n8n改写热点文案,自动同步飞书不加班3.8节内容进行配置。其中结构化“Structured Output Parser”节点的模板如下,模型的人设提示词详见文末领取方式:
{ "title":"California", "content":"", "cover_prompt":""}

3.3文生图节点此处使用的是即梦的节点,由于官方没有集成即梦节点需要自己安装。
- 在设置中找到社区配置的地方,输入:“n8n-nodes-jimeng”进行安装,安装后在列表中进行展示。

- 认证配置
这款即梦插件采用的是sessionid的方式,也就是消耗官网每天消耗的积分,不用花钱,当然生成图片多的话可以购买也可以选择其他平台。安装后就可以搜索到jimeng节点,然后选择文生图。

配置认证信息,只需要配置一个sessionid即可。
- sessionid获取方式
登录到即梦平台“https://jimeng.jianying.com/ai-tool/generate?type=image”,按F12->应用->Cookie,找到sessionid会看到一串字符进行复制。


配置好,可以选择模型、比例、分辨率等信息,其中提示词部分将大模型生成的提示词拖入即可。注意:sessionid会有过期的情况,过期后再次登录即梦获取即可,可以修改认证的地方也可以放到这个地方的sessionid中。

3.4下载图片 使用http request节点进行下载,由于即梦一次可以生成4张照片,选择一张接口,即梦节点会有一个随机字段可以使用,同时Options添加Response,Response Format选择file,名字默认是data(可以修改)


3.5图片上传同即梦节点,官方并没有提供需要社区安装节点,名称是“n8n-nodes-wechat-offiaccount”,不过在使用前需要前置工作,也需要添加认证。
- 微信公众号认证开通
需要的是Appid和AppSecret,由于接口管理功能已经迁移到开发者平台可以直接去开发者平台获取 微信开发者平台https://developers.weixin.qq.com/


获取AppID和AppSecret信息,AppSecret一定要保存好,不会再显示

注意:我已经配置过所以AppSecret显示的是重置,同时需要设置IP地址设置自己本地或者云服务器IP,其中本地地址可能需要外网地址需要测试下,不知道的可以百度输入“IP地址查询”会出现一个地址。
- n8n中配置认证信息
回到n8n平台创建新的认证填入刚刚获取到AppID和AppSecret

- 上传素材
添加微信节点,输入wechat搜索找到安装的节点,选择“新增其他类型永久素材”(当然也可以尝试新增临时素材,我没有尝试),其中文件Binary字段名要与下载图片中的名字保持一致。上传成功后会返回media_id,后边会用到。


3.6文案模板 这里比较复杂需要先获取模板保存到Edit Fields节点中,获取模板可以从秀米、135编辑器等上找免费的一键排版或者自定义,这里以秀米为例。
- 制作模板
在秀米上做好自己满意的模板,有两种形式可以放到微信公众号中,一种是通过插件复制,一种是复制粘贴,插件复制需要安装好浏览器插件,并且在微信公众平台上提前新建文章,点击后会自动同步。


- 获取模板代码
当内容同步到文章后,按F12,选择元素->拾取元素->选择内容区域,这时右侧会定位到对应的代码。

右键定位到的代码右键->复制->复制元素,获取到代码

- n8n中保存模板代码
回到工作流中添加Edit Fields节点,增加字段:名称、类型、值

3.7文案排版 对内容进行排版,使用AI Agent,让AI帮我们实现。提示词部分使用第一个模型生成的内容,人设提示词供参考可自行设置。其中排版参考引入的是模板节点的内容。
# 角色你是一名微信公众号内容排版大师,精通各种排版样式,能够精准适配微信公众平台。# 背景/目标具有丰富的公众号排版经验,通过用户提供的内容精准进行内容排版。经过排版的内容样式精美。# 技能## 技能1 :内容分析整理能力1.需求分析:根据用户提供的文章内容,找到标题和内容;2.内容整理:根据标题和内容整理好分段和格式。## 技能2 :排版能力根据标题和内容按照微信公众平台的要求格式和语法整理成排版后的内容# 约束/限制1.不改动原文内容;2.不违反微信公众平台的规则和规范。# 工作流1.分析用户输入内容,明确标题和内容;2.根据标题和内容进行排版。# 输出要求输出排版后的内容,排版参考 {{ $json.html }}

3.8 Code节点节点的作用是封装上传微信数据需要的内容和格式。

JavaScript代码
// 1. 获取上游节点的数椐(对应 n8n 中的节点引用)// 生成公众号提示词节点的输出constwechat_title = $('生成公众号提示词').item.json.output.title;// 上传媒体节点的 media_idconstmediaId = $('Media:uploadOther media').item.json.media_id;// 当前节点的 html 字段(假设 $json.html 存在)consthtmlContent = $input.first().json.output;// 2. 构建目标数据结构constarticleData = [ { article_type:"news",//文章类型,设置为"news"表示文章消息 title: wechat_title,//文章标题 author:"墨香异境",//文章作者信息 content: htmlContent,//文章正文内容 thumb_media_id: mediaId,//封面图片的媒体ID,来自上传图片素材步骤 show_cover_pic:1,//是否显示封面图片(1=显示,0=不显示) need_open_comment:1,//是否开启评论功能(1=开启,0=关闭) only_fans_can_comment:0,//评论权限(1=仅粉丝,0=所有人) auto_publish:false,//自动发布设置(false=创建草稿,true=立即发布) publish_time:"immediate"//发布时间("immediate"=立即发布) }];return{article:articleData};
3.9上传草稿 同样选择微信的节点,选择“新建草稿”,草稿文章对象内容(Articles),要选择排版生成的内容,这里需要注意要进行类型转换。
{{JSON.stringify($json.article) }}

三、写在最后 掌握了基础发布后,你还可以:多平台同步,若社区没有对应的节点,但是平台开放了API接口的话可以通过http的形式实现。 文案生成提示词领取:关注后回复“提示词”,注意不是留言。
