用途:把文章发布到微信公众号草稿箱。脚本仅依赖 Node.js 内置模块;自动生成封面时复用现有 bun 生图脚本。
主要能力:自动处理正文 CSS 变量兼容;将正文图片上传到微信正文图片接口并替换 URL;将 ul/ol 降级为更稳定的段落列表;支持默认作者、评论开关、仅粉丝评论;可从文章内容生成单张公众号封面并自动上传为 thumb_media_id。
前置条件:Node.js >= 16;如需自动生成封面需本机可用 bun;技能目录 .env 至少包含 WECHAT_APP_ID、WECHAT_APP_SECRET,可选 WECHAT_DEFAULT_THUMB_MEDIA_ID、WECHAT_DEFAULT_AUTHOR;运行机器公网 IP 需加入公众号后台 IP 白名单;自动生成封面需 article-illustrator 生图环境可用。
脚本:scripts/wechat_draft.js(上传正文到草稿箱)、scripts/upload_image.js(上传本地封面到永久素材库获取 media_id)、scripts/publish_with_cover.js(读取文章、生成封面、上传封面并推送草稿)。
用法:方式一,node scripts/wechat_draft.js --title "文章标题" --file "post.html" --author "AI源来如此" --thumb "MEDIA_ID" --need-open-comment "1" --only-fans-can-comment "1";参数含 --title、--file 必填,--author、--digest、--thumb、--source-url、--need-open-comment、--only-fans-can-comment 可选。方式二,node scripts/publish_with_cover.js --article "article.md" --html "post.html" --author "AI源来如此" --source-url "https://example.com";会提取标题/摘要、调用生图生成 16:9 封面、上传并推送草稿;可选 --title、--cover-output、--cover-ar 等。还可用 node scripts/upload_image.js "cover.png" --write-env --json 上传封面并回写 .env。
限制:需公众号后台 IP 白名单与有效凭据;自动封面依赖生图 API Key 与 bun;正文图片需路径/URL 可访问。常见报错如 40013(appid)、40164(IP 白名单)、40007(media_id)需按提示处理。