第 1 課 · 微信公眾號自動化:從接口原理到工業級流水線
🎯 学完这一课,你将能够
- 树立人机協同思维:理解为什么全自动运行一个月后,最顶级的自媒體解法不是纯機器盲跑,而是「人机協同」;
- 搞懂自動化两大底座:彻底理解 Skill(SOP 食譜) 与 OpenClaw(数字員工小龍蝦) 的分工协作机理;
- 掌握 7 步工业化流水線:将选题、標題、大綱、去 AI 味正文、微信 HTML 排版、文章封面生成与草稿箱推送拆解为标准工位;
- 具备「指挥 AI 帮自己写代碼」的能力:小白无需死磕代碼语法,学会把现成提示词喂给 AI Agent,让数字員工替你跑腿落地;
- 攻克微信官方開發門禁与避坑:透析 AppID、IP 白名單(40164 报错解法)、
thumb_media_id封面机制与草稿箱安全缓冲; - 三步落地自己的内容车间:按照「手动试水 → 半自动協同 → 全托管闭环」的稳妥节奏,把自動化安全开工。
一、【金字塔顶层·全景总览】自媒體 AI 自動化的终局不是“抽奖”,而是人机協同
过去几年,我做过累计 200 万使用者的小程式,也用 AI 编程在一年内高强度上线了 7 款产品。公眾號写作,是我最早想动手彻底自動化的一块。
因为对我来说,真正麻烦的从来不是偶尔写出一篇文章,難的是持续写、稳定写,还得越写越像自己。
前段时间,我搭了一套自己的全自动公眾號内容工厂:让 AI 自己找选题、自己起標題、自己写正文、自己排版,最后自动推送进公眾號草稿箱。这套流程确实带来了效率、流量与收益,写作这件事第一次有了“能持续运转”还能赚到钱的感觉:
但这套自動化流程运行了一个月之后,我的想法变了。
因为我后来发现:能自动跑起来,和真的长期跑得好,完全不是一回事。
全自动确实能帮我先把持续輸出的频率做出来。可如果你真想把自媒體长期做下去,很快就会碰到一个扎心现实:
全流程都在機器的不确定性中,爆款更像抽奖碰运气。因为文章真正值钱的地方,并不在生成这一步,而在創作者自己的判断、观点和品味!
所以,可持续的自媒體 AI 自動化,金字塔结构一定是这样的:
- 把人放回关键决策点:牢牢掌控「选题筛选」与「观点批注」,决定切入角度;
- 把繁杂流水線交给機器:搜集素材、拟標題、列大綱、净化去 AI 味、HTML 内联排版、封面生成、微信草稿箱推送,全交由自動化处理。
二、【金字塔中层·核心支柱】认识两大核心武器:Skill 与 OpenClaw
很多新手一听到 Agent、自動化,就觉得需要写很深奥的代碼。其实用生活中的常识就能瞬间搞懂:
1. 什么是 Skill?它就是一本精细的「私房食譜」
可以想象这样一个场景:你请来了一位米其林大廚,刀工精湛、火候极佳、学东西极快。这位大廚,就像现在的 Claude、ChatGPT 等大语言模型。
但他有个致命弱点:因为是新来的,他不知道你家平时爱吃甜还是吃咸,也不知道调料放在哪个柜子。每次你想吃菜,都得站在旁边一句句口头交代。口头交代就是 Prompt。运气好时味道不错,运气不好他就给你把西红柿炒蛋做成咸辣口。
与其天天站在厨房口头指挥,不如花半小时写一本小食譜:
- 菜品目标与口味标准
- 需要准备什么食材
- 第一步先做什么、第二步后做什么
- 哪些雷区绝不能踩
- 最后用什么盘子装盘
这本把流程、规则、顺序和交付细节写得清清楚楚的说明书,就是 Skill。
写 Skill 表面上是在教 AI 做事,本质是在梳理你自己的业务流程。没有流程、只有口头目标的任务,AI 基本都在即兴发挥,輸出自然每次都不一样。
第一个 Skill 的 4 大核心骨架
不要一上来就想做个庞然大物,一个标准可用的小 Skill,只要写清这 4 样东西:
- 触发条件:什么情况下启动这个 Skill;
- 輸入材料:给它什么原始素材(連結、提纲、受众);
- 执行步骤:按什么固定顺序执行,哪一步可以自动推进,哪一步停下等人;
- 輸出产物:最后交付成什么具体格式(如
article.md、cover.jpg、article.html)。
Skill 的三大杀手级特质
- 标准化:把长链路中的标准固定下来,AI 不会今天先出大綱、明天先写正文;
- 可迭代:今天发现標題不够吸引人,修改 Skill 里的標題打分提示词;明天发现排版间距太挤,调整 HTML 模板。骨架稳固后,越改越稳;
- 稳定运行:为機器提供坚实护栏,长流程任务不再断裂。
2. 什么是 OpenClaw(小龍蝦)?7×24 小时待命的「数字員工」
食譜(Skill)写好了,谁来开火掌勺?
OpenClaw(国内大家亲切地叫它“小龍蝦”)就是那个会按时开工、持续执行的「数字員工」。它能配合定时任务,在你睡觉或忙别的事时,自动按照食譜一步一步往下跑。
一句话记住两者的关系:
Skill 负责把流程固定下来,OpenClaw 负责把这条流程持续、正确、稳定地执行下去。
3. 人机協同机制:把人放回最值钱的节点
如果让小龍蝦一路全自动冲到底,你很快会收到大量平庸的文章。
真正高质量内容的秘诀,是在流水線中插入两个关键的人机互动节点:
- 节点一:选题待确认队列:AI 汇总出 10 个候选选题并打分,人只花 10 秒挑出最心动的 1 个;
- 节点二:观点注入批注:确认选题时,告诉 AI 这篇文章你要表达的核心态度(“重点强调小步快跑,不要堆砌技术词”)。这样写出来的文章才真正有灵魂。
三、【金字塔底层·实操搭建】小白如何指挥 AI Agent 从 0 到 1 搭建流水線
💡 小白心法提醒:面对自動化系统,你现在的身份是「产品经理兼车间总监」,而不是敲代碼的程式员。遇到任何代碼或配置问题,你只要把下面为你准备好的指令直接复制给 AI Agent(如 Cursor、Claude Code 等),让 AI 替你把文件写好!
步骤一:制作「自动獲取选题 Skill」(wechat-topic-fetch-tool)
我们要先做一个帮我们全网扫描选题的信息雷达。
1. 小白指令 SOP 1:让 AI 梳理 Mermaid 流程图方案
直接复制以下整段提示词,丢给你的 AI 编程助手:
我想做一个“微信公眾號选题抓取工具 Skill”。
请先加载 /skill-creator,并按它的确认流程执行:先出流程图,等我确认后再创建 Skill 文件。
在我确认前,不要创建任何文件,也不要調用 init_skill.py。
请先基于我给的數據源,輸出一份 Mermaid 流程图(含主流程 + fallback),并附上:
1. 你自动判断出的信息源分层思路(定位由你判断)
2. 你自动判断的工具路由顺序
3. 可复用的记忆更新机制
4. 你准备修改/新增的文件清单(只列计划,不执行)
5. Mermaid 流程图必须逐个覆盖我给出的每一个數據源,不能漏
6. Mermaid 流程图里每个數據源请统一显示为“中文名称(英文关键词)”,并由你根据 URL 自动判断提取,例如:OpenAI 新闻(openai news)
7. 如果涉及技术细节,请同时给出技术小白也能读懂的业务化解释,尽量避免专业术语堆叠
8. 在流程图方案中请明确“选题 Markdown 结构化存档”规范:后续产物统一写入 `wechat_topic_proposals.md`,并给出该文件的结构模板(必须包含:生成时间、目标渠道、數據源映射、候选选题列表、每个选题的引用来源);禁止出现“审核/审批/审核状态”等字段
等我回复“确认流程图”后,你再进入创建阶段。
我的數據源如下(你自行判断定位):
數據源1: [把这里换成你的行业热点連結/新闻源]
數據源2: [把这里换成你的 GitHub Trending 連結]
數據源3: [把这里换成你的社群或博客連結]
目标渠道: 微信公眾號发送后,Agent 会在对话中为你輸出一份高还原度的流程图方案:
2. 小白指令 SOP 2:确认圖紙,让 AI 落地 Skill
查看流程图觉得没问题后,发送第二句指令:
确认流程图。现在进入创建阶段。
请沿用本轮会话里我已经给出的目标渠道和數據源,直接使用 /skill-creator 创建这个 Skill,并严格执行:
1. 保持同级能力复刻,不要降级
2. 仅替换“信息源配置相关内容”
3. 路由逻辑、fallback 思路、memory 机制必须保留
4. 路径必须使用相对路径规则,不要写死機器绝对路径
5. 不要新增 README、安装说明、变更日志等无关文件
6. 选题结果的结构化存档文件统一采用 `wechat_topic_proposals.md`,且不包含“审核/审批/审核状态”字段
7. 创建完成后,给我实际创建的文件清单与验证命令摘要。
Skill 名称: wechat-topic-fetch-tool
Skill 一句话用途: 为微信公眾號抓取并整理可深挖的选题候选(含优先级与 fallback)执行完成后,你就在本地拥有了一个全自动选题抓取工具。
🔗 现成开源备选:如果你暂时没有配置 AI 编程环境,也可以直接从 GitHub 下载超级峰开源的现成版本:https://github.com/mileson/wechat-topic-fetch-tool。
步骤二:制作「微信公眾號全自动創作 Skill」(topic-to-wechat)
有了选题,接下来就是整条内容车间的核心发动机。一篇高质量的公眾號文章,必须拆成 7 个标准工位:
- 工位一:自动抓取选题:读取选题池
wechat_topic_proposals.md; - 工位二:生成 5 个爆款標題:带数字钩子、情绪词汇,并打分推荐第一名;
- 工位三:生成结构化大綱:给 AI 搭建护栏,防止行文偏题;
- 工位四:正文創作与「去 AI 味」净化:
- 严格禁止機器陈词滥调(“不是…而是…”、“总而言之”、“显而易见”);
- 清理生硬的长破折号,改用平实短句;
- 保持真实的第一人称口吻;
- 工位五:富文本 HTML 排版:转换为微信支持的内联样式排版;
- 工位六:文章封面图生成:
- MVP 方案:提取標題与小节关键词,通过腳本直接生成适配公众号头图的
cover.jpg; - 工程方案:調用生图 API 接口,封装成
generate_cover.py供流水線调度;
- 工位七:文章草稿發布:先上传封面换取
thumb_media_id,再推送正文 HTML 进草稿箱。
小白指令 SOP 3:一键生成全自动創作 Skill
直接复制以下指令交给 AI Agent:
我想做一个“微信公眾號全自动創作 Skill”。
请先加载 /skill-creator,并按它的确认流程执行:先出流程图,等我确认后再创建 Skill 文件。在我确认前,不要创建任何文件。
请基于以下核心生产节点,輸出一份 Mermaid 流程图(含主流程 + fallback 失败回退机制):
步骤一:自动抓取选题。读取本地选题池或搜索当前热门话题,选出最高分候选。
步骤二:生成標題。基于选题生成 5 个爆款標題候选,自动选出最优標題。
步骤三:生成大綱。根据標題生成结构化三级大綱,明确每个章节论点。
步骤四:正文創作。【关键】:必须包含“去 AI 味”净化规则,清理掉破折号、套话句式,保持真实人类分享口吻。
步骤五:排版样式。将 Markdown 纯文本转化为适合微信公眾號移动端阅读的富文本 HTML(全部转为行内 inline style)。
步骤六:封面图生成。提供可切换的落地方案:通过腳本提炼关键词自动輸出 公众号规格的 Output/wechat/images/cover.jpg。
步骤七:文章發布。調用微信公眾號官方 API 时,先上传封面图换取 thumb_media_id,再把排版好的 HTML 正文和封面图一起推送到微信公眾號草稿箱。
在流程图中,请明确最终的产物交付清单(article.md、article.html、cover.jpg)。技术细节用小白能读懂的语言标注。
等我回复“确认流程图”后,你再进入创建阶段。确认圖紙后回复:“确认流程图。请直接生成 topic-to-wechat Skill。” 即可全部自动创建完成!
步骤三:微信官方接口鉴权与新手避坑指南
让 AI 把文章推送到微信,必须连接微信官方接口。这里小白最容易踩坑,只要搞定以下三点即可畅通无阻:
1. 憑證獲取:AppID 与 AppSecret
登入 微信公众平台后台 → 設定与開發 → 基本配置:
记下開發者 ID(AppID)和開發者密码(AppSecret)。
2. 核心避坑:配置 IP 白名單(新手必踩 40164 报错)
很多新人第一次跑代碼,接口直接报错:{"errcode": 40164, "errmsg": "invalid ip ... not in whitelist"}。
- 为什么会这样? 微信出于安全机制,只允许白名單内的设备发指令。
- 小白如何秒解?
- 在你运行腳本的电脑或服务器上打开浏览器,访问
https://cip.cc/查看你的公网 IP; - 复制这个 IP,回到微信后台「基本配置 → IP 白名單」,粘贴并保存。
3. 为什么封面图不能传外链?(透析 thumb_media_id)
微信草稿箱接口强制要求传入字段 thumb_media_id。微信不支持外部圖片連結作为封面!
必须走两步:
- 先把本地
cover.jpg上传到微信素材库,微信会返回一个专属的素材通行证(media_id); - 發布草稿时,带上这个通行证,草稿箱才能正常生成封面卡片。
4. 可直接运行的 Python 發布腳本骨架
你可以把这段标准的 Python 代碼發給 AI,对它说:“*请帮我在本地创建一个腳本發布工具,憑證读取系统环境变量*”:
import os
import json
import requests
def get_access_token(app_id: str, app_secret: str) -> str:
"""1. 獲取微信接口全局調用憑證"""
url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={app_id}&secret={app_secret}"
res = requests.get(url, timeout=10).json()
if "access_token" not in res:
raise ValueError(f"獲取 Access Token 失败: {res}")
return res["access_token"]
def upload_thumb_material(access_token: str, image_path: str) -> str:
"""2. 上传封面圖片到素材库,换取草稿必须绑定的 thumb_media_id"""
url = f"https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={access_token}&type=image"
with open(image_path, "rb") as f:
files = {"media": f}
res = requests.post(url, files=files, timeout=30).json()
if "media_id" not in res:
raise ValueError(f"上传封面素材失败: {res}")
return res["media_id"]
def create_wechat_draft(access_token: str, title: str, author: str, digest: str, html_content: str, thumb_media_id: str) -> str:
"""3. 将排版好的文章推送到微信公眾號草稿箱"""
url = f"https://api.weixin.qq.com/cgi-bin/draft/add?access_token={access_token}"
article_payload = {
"articles": [{
"title": title,
"author": author,
"digest": digest,
"content": html_content,
"thumb_media_id": thumb_media_id,
"need_open_comment": 1,
"only_fans_can_comment": 0
}]
}
headers = {"Content-Type": "application/json; charset=utf-8"}
# 必须 ensure_ascii=False,否则中文会被转译为 unicode 编码导致乱码
body = json.dumps(article_payload, ensure_ascii=False).encode("utf-8")
res = requests.post(url, data=body, headers=headers, timeout=20).json()
if "media_id" not in res:
raise ValueError(f"推送草稿箱失败: {res}")
return res["media_id"]
if __name__ == "__main__":
APP_ID = os.getenv("WECHAT_APP_ID", "your_app_id_here")
APP_SECRET = os.getenv("WECHAT_APP_SECRET", "your_app_secret_here")
token = get_access_token(APP_ID, APP_SECRET)
thumb_id = upload_thumb_material(token, "./images/cover.jpg")
with open("./article.html", "r", encoding="utf-8") as f:
html = f.read()
draft_id = create_wechat_draft(
access_token=token,
title="自媒體 AI 自動化实战:从接口原理到工业级流水線",
author="超级峰",
digest="从零拆解 Skill、OpenClaw 与微信公眾號官方接口的完整串联方案。",
html_content=html,
thumb_media_id=thumb_id
)
print(f"🎉 文章已成功推送到草稿箱!Draft ID: {draft_id}")步骤四:装配到 OpenClaw 数字員工运行
工具做好了,最后一步就是让小龍蝦接手开工。
1. 规范存放目录
把写好的两个 Skill 文件夹放到小龍蝦的标准目录:
~/.openclaw/skills/wechat-topic-fetch-tool
~/.openclaw/skills/news-to-wechat- 公共技能:所有助理通用的放在
~/.openclaw/skills/; - 专属技能:专门负责写内容的助理,放在其特定工作区
workspace-blogger/skills/。
2. 三步验证跑起来
按照「手动试水 → 半自动協同 → 全托管闭环」的稳妥节奏启动:
- 手动模式(试水阶段):
- 试选题:对小龍蝦说:“*请执行 wechat-topic-fetch-tool 进行选题调研*”;
- 试創作:自己挑一个选题,对小龍蝦说:“*请使用 news-to-wechat 創作一篇关于 XXX 的文章,核心观点是 XXX*”;
- 检查草稿箱是否成功收到排版整齐的文章。
- 半自动模式(搭把手阶段·推荐长期采用):
- 让小龍蝦定时抓选题:“*每 30 分钟执行一次 wechat-topic-fetch-tool*”;
- 創作者看一眼选题池,给出一句批注下发創作指令。质量最高、最具个人风格!
- 全托管模式(全自动闭环):
- 设定定时闹钟,自动挑最高分选题执行創作并推草稿;
- 手机端公众平台助手小程式扫码做最终發布。
3. 向小龍蝦下达指令的两大避坑铁律
- 铁律一:手动安排任务时,要求越具体越好:不要只说“帮我写大綱”,而是说清楚:“*調用 news-to-wechat,选题为 XXX,重点突出三点,在大綱生成后先停下等我确认*”;
- 铁律二:定时任务千万别定“空闹钟”:不要只说“每天早上 8 点干活”,必须把时间 + 調用的 Skill + 明确目标 + 交付反馈绑定在一起:“*每天早上 8 点执行选题抓取 Skill,产物写入选题池,执行完成后在飞书私聊回复我*”。
四、【金字塔底座·实战赋能】场景匹配与避坑速查
1. 核心应用场景匹配表
| 創作者类型 | 推荐运行模式 | 人的核心动作 | AI 自動化负责链路 |
|---|---|---|---|
| 个人兼职博主 | 半自动協同(推荐) | 早起花 3 分钟挑选 1 个选题,批注 2 条观点 | 自动抓取热点、大綱拟定、去 AI 味正文扩写、文章封面生成、推送草稿 |
| 垂直技术专家 / IP | 半自动協同 | 录入专业经验提纲与核心代碼 Demo | 将技术笔记转化为适合大众阅读的通俗图文,HTML 内联高亮排版 |
| 机构新媒体矩阵 | 全托管定时模式 | 提前配置品牌关键词库与敏感词禁令,手机端扫码预览 | 多账号 7×24 小时流水線轮巡生产与草稿堆积,大幅降低人力成本 |
✅ 课后自测一下
1. 【单选】在微信公眾號草稿箱接口中,封面图是通过什么方式绑定的? A. 直接在文章 JSON 中填入網路圖片 URL B. 先通过 material/add_material 上传獲取 thumb_media_id 再绑定 C. 微信会自动抓取文章里的第一张图作为封面 D. 封面图不需要绑定,系统会自动生成灰度占位图
2. 【判断】遇到微信接口报错 40164 invalid ip 时,表示当前请求设备的公网 IP 没有加入公眾號開發者后台的 IP 白名單。
3. 【多选】为什么在自媒體长文自動化中,纯全自动容易沦为“抽奖碰运气”,必须坚持人机協同? A. 纯全自动解决了产出频率,但文章真正值钱的是創作者个人的品味、判断与观点 B. 选题决定了文章 50% 的命运,需要創作者做第一道把关 C. 在創作前注入个人独特态度与语气要求,能让文章越写越像自己 D. 微信官方禁止一切使用 AI 辅助写作的行为
答案与解析
1. B。微信草稿接口必须强制绑定永久素材库的 thumb_media_id,不能直接传圖片外链。
2. 正确。40164 是经典的 IP 白名單拦截,通过 https://cip.cc/ 查询发请求设备的公网 IP 并添加至微信公众平台開發者基本配置即可解决。
3. A、B、C。微信官方并不排斥优质的 AI 辅助創作,但纯无脑全自动容易产出千篇一律的機器垃圾。人机協同把人放回选题与观点表达的关键节点,兼顾了高效产能与优质原创深度。
📌 一句话带走
先把流程想清楚写成 Skill(食譜),再把执行交给数字員工小龍蝦;人牢牢把控选题与观点,機器接管繁琐流转。
学完后记得保存进度
完成状态只保存在当前浏览器,不会上传你的学习记录。