当前位置:首页>python>让Openclaw用Python实现公众号自动发布,零skills,零依赖!

让Openclaw用Python实现公众号自动发布,零skills,零依赖!

  • 2026-09-26 08:22:05
让Openclaw用Python实现公众号自动发布,零skills,零依赖!

大家猴,我是春长

当现有工具失灵,我是如何用最「笨」的方法解决实际问题的

背景:被逼上梁山的经历

事情是这样的。

之前一直用 Deno 环境的 wechat-auto-publish 来发布公众号文章,挺好的。但最近换到 OpenClaw 环境后傻眼了——Deno 跑不了。

好,那换一个。用 wechat-mp-publisher 吧,结果一看依赖:mcporter、curl、jq……一个都没有。

最崩溃的是,调用微信 API 时还遇到了乱码问题,封面图片是 WebP 格式微信不接受,文章摘要也得手动填……

有时候就是这样,看起来简单的事情,背后往往藏着无数坑。

问题分析:四个拦路虎

环境不兼容

原有工具需要的运行环境当前环境
wechat-auto-publishDeno❌ 没有
wechat-mp-publishermcporter/curl/jq❌ 都没有

微信 API 乱码

直接用 curl 调用微信接口时,中文内容经常出现乱码。HTML 内容的编码处理是个技术活。

封面图片格式坑

MiniMax API 生成图片是 WebP 格式,但微信只支持 JPG/PNG。这就像去医院挂号,结果告诉你今天不看这个科——你得换。

摘要手动填写

每发一篇文章都要手动提炼摘要,麻烦不说,关键是容易写得像「说明文」,不吸引人。

解决方案:Python + urllib,它不香吗?

核心思路

既然各种花哨的工具都用不了,那就回到最原始的方式:用 Python 标准库 urllib 直接硬刚微信 API。

事实证明,标准库它真的香——不需要装任何额外依赖,有 Python 就能跑。

混合方案设计

功能使用什么为什么
微信 access_tokenurllib标准库,无需安装
草稿箱发布urllib标准库,无需安装
封面上传urllib标准库,无需安装
MiniMax 图片生成requestsJSON 处理更方便
图片下载requests流式下载更稳定

结论:以 urllib 为主(微信 API),requests 为辅(图片相关)。够用就好,不整花活。

公众号发布的「三座大山」

根据公众号发布规则,以下参数是必填的:

  • 标题 —— 必须填写
  • 作者 —— 必须填写
  • 封面图片 —— 必须上传(否则无法保存)
  • 摘要 —— 建议填写(用于消息推送展示)

架构设计:五步走战略

┌─────────────────────────────────────────────────────┐
│ python-wechat-publish │
├─────────────────────────────────────────────────────┤
│ 1. 读取 HTML 文件 │
│ ↓ │
│ 2. 提取标题、关键词、核心内容 │
│ ↓ │
│ 3. 自动生成摘要 (digest) │
│ ↓ │
│ 4. 调用 MiniMax API 生成封面图片 │
│ ↓ │
│ 5. ImageMagick 转换格式 (WebP → JPG) │
│ ↓ │
│ 6. 上传封面到微信素材库 │
│ ↓ │
│ 7. 调用草稿箱 API 发布文章 │
└─────────────────────────────────────────────────────┘

核心功能实现

标题自动提取

# 首先尝试读取同名 .md 文件
# 从 Markdown 第一行提取标题
# 如果没有 .md 文件,从 HTML 提取

简单来说,就是优先级:同名的 .md 文件 > 从 HTML 提取。兜底方案一定要有。

自动摘要生成

这是我觉得最实用的功能。

  • 提取包含关键概念的句子
  • 生成 120 字左右的摘要
  • 核心:吸引用户点击阅读

与其绞尽脑汁手动写摘要,不如让 AI 帮你搞定。

智能封面 Prompt

提取关键词:AI、代码、成长、技术
分析文章主题
生成匹配的英文描述

你只需要告诉它文章是讲什么的,封面 Prompt 自动生成,图片自动生成。

图片格式转换

# ImageMagick convert 命令
# 自动检测 WebP 格式并转换
convert image.webp image.jpg

一个命令,解决格式问题。


使用方法

# 完整功能:自动摘要 + 自动封面
python publish.py \
  --file article.html \
  --title "文章标题" \
  --author "你的名字" \
  --auto-digest \
  --auto-cover
参数简写说明
--file-fHTML 文件路径 ✅
--title-t文章标题 ✅
--author-a作者名称 ✅
--auto-digest-d自动生成摘要 ✅
--auto-cover-c自动生成封面 ✅

所有参数都是必填的——因为公众号后台也是必填的。保持一致,体验更好。


技术细节

获取 access_token

GET https://api.weixin.qq.com/cgi-bin/token
?grant_type=client_credential
&appid=你的AppID
&secret=你的AppSecret

发布到草稿箱

POST https://api.weixin.qq.com/cgi-bin/draft/add
?access_token=ACCESS_TOKEN

上传封面图片

POST https://api.weixin.qq.com/cgi-bin/material/add_material
?access_token=TOKEN&type=image

MiniMax 图片生成

url = "https://api.minimax.chat/v1beta/images/generations"
payload = {
    "model": "dall-e-3",
    "prompt": "你的封面描述",
    "size": "1024x1024"
}

经验总结

回头看这段开发历程,有几点体会:

  1. 环境适配:当现有工具不兼容时,直接用底层 API 是更灵活的方案。
  2. 渐进式开发:先实现核心功能,再逐步添加智能功能。
  3. 问题分解:复杂问题拆分为小问题,逐一解决。
  4. 混合方案:根据场景选择合适的工具,灵活搭配,不执着于某一技术栈。
  5. 敏感信息保护:所有文档中不要包含 AppID、AppSecret 等敏感信息。

最后说一句:技术方案没有最好,只有最合适。最小可行方案,往往是最务实的选择。

如果你也有类似的「工具失灵」经历,欢迎在评论区聊聊是怎么解决的 👇


最新文章

随机文章