微信公众号草稿推送
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_6bee27e2/wechat-draft-push。
技能介绍
要解决的问题
公众号后台没有开放文章编辑接口,排版依赖编辑器的所见即所得。本地写好的 HTML 文章要发布时,图片得一张张手动上传,样式可能被编辑器打乱,草稿反复修改还容易在后台留下多份副本。这个技能的目标是把「HTML + 图片目录 → 草稿箱」压缩成一条命令。
技能如何工作
核心脚本 wechat_push.py 接收任意 HTML 和图片目录:
- 解析 HTML,提取正文图片走
media/uploadimg上传(临时素材,不占永久额度),封面单独走永久素材 sanitize_css()清洗样式:剔除backdrop-filter、filter、z-index、@media,渐变转末位纯色,避免渐变背景上白字隐身这类渲染事故extract_digest()提取摘要:跳过图片与空段,取首段有意义的纯文本- 调用
draft/add写入草稿箱;--update更新失败时自动新建并删除旧草稿,保证后台只有一份
健壮性方面:token 缓存到 ~/.cache/wechat_token.json(7200 秒内复用),图片按路径缓存到 ~/.cache/wechat_img_cache.json,重推跳过已传图。SSL 默认启用证书校验,仅 --insecure 供本地沙箱兜底。--list 可查看草稿箱列表,--publish 触发异步群发。
适用边界
需要认证的公众号,配置 WECHAT_APPID / WECHAT_SECRET 环境变量,并把出口 IP 加入白名单——沙箱 IP 漂移会导致 40164 拦截。群发有频率限制:订阅号每日 1 条,服务号每月 4 条。正文图为临时素材,长期有效的图片需另行处理。
使用场景
- 博客作者写好带渐变徽章和配图的 HTML 文章,需要把正文图传上去、样式不被编辑器打乱后推入草稿箱。
- 运营每周把多篇排版完成的 HTML 稿件批量推入草稿箱,重推时不想重复上传已传过的图片。
- 编辑修改旧稿后要用 --update 覆盖更新,失败时希望后台自动新建加删旧,不留重复草稿。
- 团队在沙箱环境联调接口,遇到 40164 拦截,需要确认是出口 IP 漂移未进白名单。
适合人员
- 独立博客作者,诉求:把本地 HTML 文章一键推入公众号草稿箱,不再手动粘贴和逐张传图。
- 公众号运营编辑,诉求:批量管理草稿,更新失败时不产生重复,重推时跳过已传图片。
- 工具链开发者,诉求:把技能接进 CI 或脚本流水线,确认 token 缓存与 IP 白名单配置。