HomeBrowseUpload
← Back to registry
// Skill profile

WeChat Article Publisher

name: wechat-article-publisher

by chenyd002025 · published 2026-03-22

开发工具图像生成加密货币
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:chenyd002025/chenyd002025-jvs-wechat-article-publisher
View on GitHub
// Full documentation

---

name: wechat-article-publisher

description: 微信公众号文章排版和发布技能。提供专业排版模板、图片上传、草稿发布等完整工作流。使用场景:(1) 创建公众号文章,(2) 上传图片到素材库,(3) 发布草稿到微信后台,(4) 装修案例/干货分享/客户故事等类型文章。

---

# WeChat Article Publisher

微信公众号文章排版和发布技能。

---

📋 使用前准备(首次使用必读!)

1. 微信公众号要求

  • ✅ 需要已注册的**微信公众号**(服务号或订阅号均可)
  • ✅ 需要公众号的 **AppID** 和 **AppSecret**
  • ⚠️ 公众号需要通过微信认证(未认证账号部分 API 受限)
  • 2. 获取 AppID 和 AppSecret

    1. 登录 [微信公众平台](https://mp.weixin.qq.com)

    2. 进入 **开发 → 基本配置**

    3. 复制 **开发者 ID** 中的:

    - `AppID(应用 ID)` - 类似 `你的 APPID`

    - `AppSecret(应用密钥)` - 类似 `你的 APPSECRET`

    3. 配置 IP 白名单(重要!)

    微信 API 要求配置服务器 IP 白名单:

    1. 在 **开发 → 基本配置** 页面

    2. 找到 **IP 白名单** 设置

    3. 添加你的服务器公网 IP:

    - 本地测试:查询本机公网 IP(访问 https://ip.sb)

    - 服务器:填写服务器的公网 IP 地址

    - 可添加多个 IP,用逗号分隔

    **常见 IP 白名单配置:**

    {
      "ipWhitelist": ["你的公网 IP", "你的服务器 IP 2", "你的服务器 IP 1"]
    }

    4. 创建配置文件

    在技能目录创建 `config.json`:

    {
      "appId": "你的 AppID",
      "appSecret": "你的 AppSecret",
      "ipWhitelist": ["你的公网 IP"]
    }

    ⚠️ **安全提醒**:

  • `config.json` 包含敏感信息,**不要上传到 ClawHub**
  • 只保留 `config.example.json` 作为示例
  • 真实配置文件应加入 `.gitignore`
  • 5. 验证配置

    运行测试命令验证配置是否正确:

    # 获取 token(成功会返回一串字符)
    curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的 APPID&secret=你的 APPSECRET"

    **成功响应:**

    {"access_token":"ACCESS_TOKEN","expires_in":7200}

    **失败响应:**

    {"errcode":40013,"errmsg":"invalid appid"}

    ---

    🔴 严重警告:中文乱码问题(必读!)

    **问题现象**:发布后文章内容显示为 `<p>这是文字</p>` 标签,而不是正常中文。

    **根本原因**:

    1. ❌ Python requests 库默认编码不是 UTF-8

    2. ❌ Content-Type 头未指定 `charset=utf-8`

    3. ❌ Token 过期导致 API 异常处理

    **✅ 正确解决方案(必须遵守!)**:

    # ========== 第 1 步:获取最新 token(每次发布前都要重新获取!) ==========
    TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=SECRET" | python3 -c "import sys,json; print(json.load(sys.stdin).get('access_token',''))")
    
    # ========== 第 2 步:上传封面图 ==========
    COVER=$(curl -s -X POST "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$TOKEN&type=image" -F "media=@/path/to/cover.jpg" | python3 -c "import sys,json; print(json.load(sys.stdin).get('media_id',''))")
    
    # ========== 第 3 步:发布草稿(关键:-H "Content-Type: application/json; charset=utf-8") ==========
    curl -s -X POST "https://api.weixin.qq.com/cgi-bin/draft/add?access_token=$TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d "{\"articles\":[{\"title\":\"标题\",\"content\":\"<p>中文内容</p>\",\"thumb_media_id\":\"$COVER\"}]}"

    **⚠️ 四个必须(缺一不可!)**:

    1. ✅ **每次发布前都重新获取 token** - token 有效期只有 2 小时

    2. ✅ **必须指定 `charset=utf-8`** - `-H "Content-Type: application/json; charset=utf-8"`

    3. ✅ **必须用 curl 命令** - 不要用 Python requests(编码不可靠)

    4. ✅ **必须手机扫码预览** - PC 预览可能显示 Unicode(未验证账号)

    **🧪 测试命令**(发布前先用这个验证编码):

    curl -s -X POST "https://api.weixin.qq.com/cgi-bin/draft/add?access_token=$TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d "{\"articles\":[{\"title\":\"测试文字\",\"content\":\"<p>这是中文测试</p><p>能看到吗</p>\",\"thumb_media_id\":\"$COVER\"}]}"

    **❌ 错误做法(不要再犯!)**:

  • 使用 Python `requests.post(url, json=data)` 直接发布
  • 复用旧 token(超过 2 小时)
  • 不指定 `charset=utf-8`
  • 只在 PC 端预览,不用手机扫码
  • ---

    快速开始

    发布文章(推荐方式)

    # 使用 curl 命令发布(见上方「严重警告」章节的完整命令)

    上传图片

    python3 scripts/upload_images.py /path/to/images/

    ---

    排版模板

    专业版模板(推荐)

    适用于装修案例、实景展示等专业内容。

    **特点:**

  • 英文 + 中文双语标题(如 LIVING ROOM · 客厅)
  • 奶油色配色方案(#f5e6d3、#8b7355)
  • 标题底部装饰线
  • 表格相间背景色
  • 预约框圆角背景
  • **模板文件:** `assets/templates/professional.md`

    简洁版模板

    适用于快讯、通知等简单内容。

    **模板文件:** `assets/templates/simple.md`

    ---

    文章结构

    标准结构

    1. **封面大图** - 标题后第一张就是图片

    2. **项目信息** - 小区/面积/风格/造价表格

    3. **空间展示** - 客厅/餐厅/卧室/厨房等

    4. **费用明细** - 分类费用表格

    5. **改造亮点** - 项目亮点列表

    6. **预约量房** - CTA 行动号召

    7. **联系我们** - 公司信息

    图片规则

  • 每个空间 1-2 张图
  • 图片宽度 100%,最大 600px
  • 图片间留白 20px
  • 封面图单独指定
  • ---

    发布流程

    步骤 1:准备文章

    # 文章标题
    
    <img src="封面图 URL">
    
    ---
    
    ## 空间 1
    
    <img src="图片 URL">
    
    说明文字
    
    ---
    
    ## 空间 2
    
    ...

    步骤 2:上传图片

    python3 scripts/upload_images.py /path/to/images/
    # 输出图片 URL 列表

    步骤 3:插入 URL

    将上传的图片 URL 替换文章中的占位符。

    步骤 4:发布草稿

    **唯一推荐方式(curl 命令):**

    # 1. 获取 token
    TOKEN=$(curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的 APPID&secret=你的 APPSECRET" | python3 -c "import sys,json; print(json.load(sys.stdin).get('access_token',''))")
    
    # 2. 上传封面
    COVER=$(curl -s -X POST "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$TOKEN&type=image" -F "media=@/path/to/cover.jpg" | python3 -c "import sys,json; print(json.load(sys.stdin).get('media_id',''))")
    
    # 3. 发布(注意:-H "Content-Type: application/json; charset=utf-8")
    curl -s -X POST "https://api.weixin.qq.com/cgi-bin/draft/add?access_token=$TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d "{\"articles\":[{\"title\":\"标题\",\"content\":\"<p>中文内容</p>\",\"thumb_media_id\":\"$COVER\"}]}"

    **❌ 禁止使用 Python 脚本直接发布**(会导致乱码)

    步骤 5:手动发表

    登录微信后台 → 草稿箱 → 检查 → 点发表

    ---

    配置

    配置文件:`config.json`

    {
      "appId": "你的 AppID",
      "appSecret": "你的 AppSecret",
      "ipWhitelist": ["你的服务器 IP 1", "你的服务器 IP 2"]
    }

    ---

    常见问题

    🔴 中文乱码(最重要!)

    **现象**:文章显示为 `<p>这是文字</p>` 标签

    **原因**:编码格式不正确

    **解决方案**:

    1. 使用 curl 命令发布

    2. 必须指定 `-H "Content-Type: application/json; charset=utf-8"`

    3. 每次发布前重新获取 token

    API 48001 错误

    微信 API 未授权,无法直接发布。

    **解决方案:** 使用草稿 API + 手动发表工作流。

    图片不显示

    图片未上传到微信素材库。

    **解决方案:** 先用 `upload_images.py` 上传图片获取 URL。

    排版错乱

    Markdown 格式不正确。

    **解决方案:** 使用提供的模板文件。

    ---

    脚本说明

    publish_wechat.py

    发布文章到微信草稿箱。

    python3 scripts/publish_wechat.py <article.md> [options]
    
    选项:
      --template <name>     模板名称 (viral/professional/simple)
      --cover-image <path>  封面图路径
      --output <path>       输出 HTML 路径

    **⚠️ 注意**:此脚本可能导致中文乱码,建议使用 curl 命令替代。

    upload_images.py

    批量上传图片到微信素材库。

    python3 scripts/upload_images.py <image_folder>
    
    输出:
      图片 URL JSON 文件

    ---

    内容栏目

    7 栏目规划

    1. **实景案例** - 完工项目实景拍摄

    2. **干货分享** - 装修知识/避坑指南

    3. **客户故事** - 业主访谈/入住反馈

    4. **工地实况** - 施工进度/工艺展示

    5. **材料科普** - 主材/辅材知识

    6. **问答互动** - 常见问题解答

    7. **活动促销** - 优惠活动/套餐

    ---

    参考链接

  • 微信公众平台:https://mp.weixin.qq.com
  • 微信 API 文档:https://developers.weixin.qq.com/doc/offiaccount/
  • 排版参考:见 `references/` 目录
  • ---

    公司信息模板

    公司:[你的公司名称]
    网站:[你的网站]
    电话:[你的联系电话] / [你的联系电话]
    地址:[你的地址]
    时间:9:00-18:00(周一至周日)

    ---

    发布检查清单(每次发布前必看!)

  • [ ] 已重新获取最新 token(不超过 2 小时)
  • [ ] 已使用 curl 命令(不是 Python)
  • [ ] 已指定 `-H "Content-Type: application/json; charset=utf-8"`
  • [ ] 已用手机扫码预览(不是 PC 预览)
  • [ ] 已确认文字正常显示(不是 `<p>...</p>` 标签)
  • **以上 5 项全部打勾后才能正式发布!**

    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band