# wechat-draft-publisher **Repository Path**: yonja/wechat-draft-publisher ## Basic Information - **Project Name**: wechat-draft-publisher - **Description**: 把已经写好的 Markdown、Obsidian 笔记、飞书预览稿推进到微信公众号草稿箱的 OpenClaw Skill。支持发布前预检、正文图片处理、封面策略,以及可插拔的去 AI 味 / 润色上游步骤。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-06-16 - **Last Updated**: 2026-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wechat-draft-publisher 把**已经写好的 Markdown / Obsidian 笔记 / 飞书预览稿**,稳定推进到**微信公众号草稿箱**。 它只做发布链,不做内容生成链。 ## 这个仓库解决什么问题 当你手里已经有一篇内容,只差“发布到公众号草稿箱”这一步时,这个 Skill 负责: - 发布前预检 - 微信友好格式整理 - 正文图片处理 - 封面策略 - 草稿箱投递 - 结构化回执输出 它**不负责**: - 选题 - 搜集资料 - 生成正文 - 起标题候选 - 自动配图主流程 --- ## 当前稳定交付范围 当前这份仓库已经收成了一个可安装、可验证、边界清晰的 **5.2 发布侧 Skill**。 已做过的本地验证包括: - 脚本语法检查(`py_compile`) - 发布链 verify - `.skill` 打包 - **fresh install 烟测**:从零安装到 `~/.openclaw/skills` 后,重新运行 `setup.py` 和 `publish_markdown.py --check` > 注意:当前稳定的是“发布到草稿箱”这条链,不是“整条公众号内容生产线”。 --- ## 推荐安装方式 ### 方式 A:把仓库链接发给小龙虾(推荐) 你现在可以直接这样说: ```text 帮我安装这个 skill:https://gitee.com/woipanda/wechat-draft-publisher ``` 装好后可以继续这样说: - 帮我把这篇 Markdown 先做一次公众号发布前预检 - 帮我把这份飞书预览稿整理成公众号发布稿 - 帮我把这篇现成内容推进到公众号草稿箱 > 注意:这类 Skill 和 `topic-monitor` 一样,现在已经可以走“发链接给小龙虾”的安装入口;但它装好之后还会多一步首次配置,因为公众号发布必须补 `AppID / AppSecret`。 ### 方式 B:手动安装 / 运行 #### 1)获取仓库 ```bash git clone https://gitee.com/woipanda/wechat-draft-publisher.git cd wechat-draft-publisher ``` #### 2)一键安装到 OpenClaw skills 目录 ```bash bash install.sh ``` 默认安装到: ```bash ~/.openclaw/skills/wechat-draft-publisher ``` 这个安装脚本会做三件事: - 把 Skill 复制到 OpenClaw skills 目录 - 如有旧版本,先自动备份 - 以**用户级**方式安装 Python 依赖(`httpx` / `Markdown` / `Pillow`) #### 3)首次配置 ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/setup.py ``` 安装向导当前只收集发布草稿箱真正必需的信息: - 公众号 AppID - 公众号 AppSecret - 默认作者名 #### 4)先做连通性检查 ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/check_wechat_connection.py ``` **如果你遇到“IP 白名单”报错(常见错误码:`40164`)** 这表示:你当前运行 Skill 的机器/服务器的**出口公网 IP**,不在公众号后台的白名单里。 处理步骤: 1) 先查出口公网 IP(在服务器上执行即可): ```bash curl -s https://ifconfig.me ``` 2) 去微信公众号后台:`开发 → 基本配置 → IP 白名单`,把上面查到的 IP 加进去。 3) 等 1~3 分钟后重试连通性检查。 > 提醒:如果你在笔记本/家宽环境运行,公网 IP 可能会变,白名单需要跟着更新;更稳的是在**固定公网 IP 的云服务器**上跑这条发布链。 #### 5)先做一遍发布前预检 ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/publish_markdown.py \ --check \ --file /path/to/article.md \ --cover-image /path/to/cover.jpg ``` ### 方式 C:手动复制 Skill(备选) 如果你不想跑 `install.sh`,也可以手动复制: ```bash mkdir -p ~/.openclaw/skills cp -R skill/wechat-draft-publisher ~/.openclaw/skills/wechat-draft-publisher python3 -m pip install --user -r ~/.openclaw/skills/wechat-draft-publisher/requirements.txt ``` 然后继续执行: ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/setup.py ``` --- ## 最小使用链 ### 场景 A:你已经有本地 Markdown 成稿 ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/publish_markdown.py \ --check \ --file /path/to/article.md \ --cover-image /path/to/cover.jpg python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/publish_markdown.py \ --file /path/to/article.md \ --cover-image /path/to/cover.jpg ``` ### 场景 B:你先在飞书文档里看过预览稿 先清洗飞书预览稿: ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/prepare_feishu_doc_for_wechat.py \ --input /path/to/feishu-preview.md \ --output /path/to/publish.md \ --title "文章标题" ``` 再预检并发布: ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/publish_markdown.py \ --check \ --file /path/to/publish.md \ --cover-image /path/to/cover.jpg ``` ### 场景 C:你有草稿池记录 + 预览文档 ```bash python3 ~/.openclaw/skills/wechat-draft-publisher/scripts/feishu_record_to_draft.py \ --record-json /path/to/record.json \ --doc-markdown /path/to/preview.md \ --output-dir /path/to/output ``` 如果要直接发布,可再加: ```bash --publish ``` --- ## 配置文件在哪里 安装后配置位于: - `~/.openclaw/skills/wechat-draft-publisher/config/credentials.json` - `~/.openclaw/skills/wechat-draft-publisher/config/settings.json` 如果你后面只是改默认作者、默认封面策略,最简单的方法是: - 直接重跑 `setup.py` - 或者让 Agent / 小龙虾帮你改这两个 JSON 文件 --- ## 当前已实测通过的能力 - `setup.py` 初次配置 - `check_wechat_connection.py --help` - `publish_markdown.py --check` - 飞书预览稿转发布稿 - 草稿池记录转发布稿 - `.skill` 打包 - fresh install 后再跑预检 已有真实业务回执支撑: - 草稿箱 `draft_id/media_id` - 草稿池状态回写 - 本地发布稿文件 --- ## 效果说明 这份 Skill 的目标不是替你自动运营公众号,而是把最容易碎掉的发布前动作接稳: - 检查文章能不能发 - 检查封面是否可用 - 处理正文图片 - 把稿子推进到公众号草稿箱 - 把结果以结构化方式吐回来 最稳的工作方式仍然是: > **先预检,进草稿箱,再人工确认是否正式发布。** --- ## 边界与注意事项 ### 1. 草稿箱 ≠ 正式群发 这个 Skill 默认目标是微信公众号**草稿箱**,不是直接群发。 ### 2. 封面必须最终可用 优先级依次是: - `--thumb-media-id` - `--cover-image` - 配置里的 `default_thumb_media_id` - 正文里至少一张可访问本地图片(自动取首图) ### 3. 这不是内容生成器 不要把 5.1 的选题 / 写稿 / 配图主流程混进 5.2。 --- ## 仓库结构 ```text wechat-draft-publisher-skill-repo/ ├── README.md ├── install.sh ├── 开发记录.md ├── 验证报告.md ├── Gitee发布准备说明.md ├── examples/ ├── scripts/ └── skill/ └── wechat-draft-publisher/ ``` --- ## 一句话总结 > 这不是“自动写公众号”的工具,而是一条已经收稳的发布链:把你已经写好的内容,检查好、整理好、推进到微信公众号草稿箱。