OpenClaw Skill 实现公众号自动排版
每当写完公众号文章,最痛苦的不是写作本身,而是排版。
把飞书文档的内容复制到微信后台,格式全乱了,一篇文章要调半小时。
这个痛,运营过公众号的人都懂。
整体工作流
飞书文档定稿 ↓ 转发链接给 AIOpenClaw(xiaohu-wechat-format) ↓ 读取文件 → 分析结构 → 生成 HTML微信兼容排版 + 图片上传 ↓ 可选推送到公众号草稿箱 ↓你只需点「发送」你只需要做两件事:写完文章 + 说一句话。
一、安装技能
在飞书对话框向 AI 发送指令:
帮我安装 xiaohu-wechat-format 公众号排版工具AI 将自动完成: - 克隆 GitHub 仓库到本地 - 安装 Python 依赖(markdown、requests) - 初始化配置文件
你什么都不用管,等几秒就行。
二、配置微信公众号 API
这一步需要你打开微信公众平台开发者后台,操作两件事:
2.1 查 AppID 和 AppSecret
进入「设置与开发 → 基本配置」,复制 AppID 和 AppSecret,发给 AI:
公众号 AppID:xxxx,AppSecret:xxxxAI 自动写入配置文件。
2.2 添加 IP 白名单
在 AI 对话框输入:
需要配置微信公众号 API IP 白名单,告诉我地址AI 会直接告诉你你的公网 IP,然后你打开:微信后台 → 设置 → 基本配置 → IP 白名单 → 添加这个 IP
完成后说「已添加」,AI 确认连接正常。
获取本机公网 IP
⚠️ 家庭宽带 IP 会变,发布报 IP 错误时重新获取并更新白名单即可。
macOS:
curl -s https://httpbin.org/ip | python3 -c "import sys,json; print(json.load(sys.stdin)['origin'])"# 或者curl -s https://ifconfig.meWindows(PowerShell):
(Invoke-WebRequest -Uri "https://ifconfig.me" -UseBasicParsing).Content.Trim()# 或者(Invoke-RestMethod -Uri "https://httpbin.org/ip").originLinux:
curl -s https://ifconfig.me# 或者curl -s https://httpbin.org/ip | python3 -c "import sys,json; print(json.load(sys.stdin)['origin'])"三、使用方式
安装配置好之后,使用就非常简单了。
一键推送到草稿箱
配置好 AppID/AppSecret 后,直接说:
把这篇文章推送到公众号草稿箱,(可以在这里说使用什么主题)AI 自动完成:排版文章 → 上传图片到微信 CDN → 创建草稿。
你只需要打开微信后台 内容管理 → 草稿箱,确认内容没问题,点「发送」。
四、推荐主题
github | ||
bytedance | ||
newspapermagazine | ||
sspai | ||
coffee-houseterracotta、mint-fresh |
五、故障排查
5.1 问题:exec 审批一直弹窗
原因:OpenClaw 3.31+ 版本重构了安全审批机制,需要在 openclaw.json 中显式声明 tools.exec 配置。
解决:编辑 ~/.openclaw/openclaw.json,在 tools 字段下添加:
{ "tools": { "exec": { "security": "full", "ask": "off" } }}修改后需重启 OpenClaw 服务使配置生效:
openclaw gateway restart5.2 问题:代码块排版显示乱码
现象:代码块里出现了 class="language-bash"、style="color:#6a9955" 等原始字符。
根因:format.py 的 _basic_syntax_highlight 函数在处理含 nl2br 的代码块时,HTML 标签被正则误匹配——字符串和注释的正则把 <br> 标签内容和 HTML 属性值(如 color:#6a9955)当作文本高亮了,导致 HTML 结构被破坏。
修复:重写 _basic_syntax_highlight 函数,改为逐字符解析——遇到 < 字符时直接跳过整个标签,只对标签之间的纯文本做语法高亮。
涉及修改的文件:scripts/format.py(_basic_syntax_highlight 函数)
5.3 问题:发布报 IP 错误
原因:家庭宽带公网 IP 变了。
解决:重新获取公网 IP,更新微信后台 IP 白名单(见上方「获取本机公网 IP」章节)。
夜雨聆风