AI 自动发公众号

告诉 OpenClaw 一句话,文章就自动出现在公众号草稿箱里,你只需打开草稿箱 → 预览 → 发布。

第一步:获取公众号 API 凭证(5分钟)

获取 AppID 和 AppSecret

登录 mp.weixin.qq.com → 设置与开发 → 基本配置

  • AppID:页面直接显示,复制即可
  • AppSecret:点"重置"生成新的(只显示一次,务必保存

公众号后台配置

配置 IP 白名单

同页面找到 IP 白名单,加入服务器出口 IP。不加会报 40164 错误。

不知道出口 IP?终端执行:

curl ifconfig.me

如果通过代理上网,要加代理出口 IP,不是本机 IP。

第二步:告诉 OpenClaw 配置

把 AppID 和 AppSecret 发给 OpenClaw:

帮我配置公众号自动发布:
AppID: wx你的AppID
AppSecret: 你的AppSecret

第三步:发文

告诉 OpenClaw:

帮我写一篇关于 xxx 的文章,推到公众号草稿箱

OpenClaw 自动完成 4 个步骤:

  1. 获取 access_token(AppID + AppSecret 换临时令牌,2小时有效)
  2. 上传图片到微信素材库(公众号只认 mmbiz.qpic.cn 域名的图片)
  3. 生成文章 HTML(公众号本质是 HTML 渲染)
  4. 推送到草稿箱(调用 draft/add 接口)

你的工作:打开草稿箱 → 预览 → 发布。

常见坑与解决方法

坑 1:中文乱码(最常见!)

第一次推送"成功",打开草稿箱看到的是:\u4eca\u5929 \u5206\u4eab...

原因:Python requests 发 JSON 时默认 ensure_ascii=True,中文被转成 \uXXXX。微信 API 直接当原始文本存进去了。

❌ 错误写法:

requests.post(url, json=data)  # 中文变乱码

✅ 正确写法:

requests.post(
    url,
    data=json.dumps(data, ensure_ascii=False).encode("utf-8"),
    headers={"Content-Type": "application/json"}
)

坑 2:图片不显示

公众号过滤所有非微信域名图片。必须先用 uploadimg 接口把图片传到微信素材库,用返回的微信 URL。

坑 3:标题太长报 45003

微信标题限制约 64 字节(约 20 个中文字),缩短标题即可。

坑 4:HTML 标签兼容性差

公众号对 h2/ul/li/code 渲染不稳定,全部改用 p + inline style。

坑 5:40164(IP 白名单不对)

通过代理访问微信 API 时,白名单要加代理出口 IP,不是本机 IP。

效率对比

方式时间
传统方式(写稿 + 排版 + 配图 + 检查)约 2 小时
OpenClaw 自动化(说一句话 + 检查 + 发布)约 10 分钟

节省 90% 时间。