據 AlphaMoat 統計,截至 2026-09,Weixin 累計下載 4,037 次、獲 5 個星標,在全部 5,078 個 AI 技能中排名第 2,528 位,在「開發程式設計」分類(577 個)中排名第 331 位。
| 平台 | 累計安裝 | 累計下載 | 星標 | 評論 |
|---|---|---|---|---|
| ClawHub ↗ | 102 | 3827 | 1 | - |
| SkillHub ↗ | 98 | 4037 | 5 | — |
各平台的計數口徑不同,統計時間不一致。
它附帶基於 Python 標準庫的 CLI,可獲取或快取 access_token、呼叫官方介面、上傳圖片素材、建立和查詢草稿、釋出文章及檢視發表記錄,並提供 OAuth、JSSDK 和支付接入要點。AppSecret、access_token、商戶私鑰等憑據必須保護;釋出文章、群發或模板訊息會觸達外部使用者,執行前應核對內容、目標並取得確認。
資料釋出於 2026-10-29
以下是根據技能文件生成的示例,不代表實際執行結果。
2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。
| 月份 | 累計下載 | 環比 | 星標 |
|---|---|---|---|
| 2026-09 | 4037 | — | 5 |
| 2026-08 | 3639 | +8.8% | 5 |
| 2026-07 | 3345 | +26.5% | 1 |
| 2026-06 | 2645 | +8.5% | 3 |
| 2026-05 | 2438 | — | 2 |
以下是作者釋出的原始檔案,按純文字顯示,本站未做修改或稽核;其中的連結不可點選,命令請核實後再執行。抓取於 2026-10-23。
--- name: "微信公众平台开发" version: "2.0.0" description: "微信公众号/小程序 API 工具与实战避坑手册。Use for: (1) 用附带的零依赖 CLI 直接调公众号 API——取 token、传素材、建草稿、发布文章,(2) 排查 40164/45009 等真实高频错误,(3) 公众号接入/OAuth/JSSDK/支付 V3 开发指导。WeChat Official Account API CLI (zero-dependency) plus a battle-tested pitfall guide for token, media, draft and publishing workflows." tags: ["wechat", "weixin", "official-account", "miniprogram", "api", "cli"] author: "ClawSkills Team" category: "social" --- # 微信公众平台开发 Skill
不止讲"微信开发是什么"——本 skill 附带一个**零依赖命令行工具**
(`scripts/wxoa.py`,仅 Python 标准库),让 agent 直接替用户完成
公众号内容发布全链路:取 token → 传封面 → 建草稿 → 发布 → 查发表记录。
另附一份**真实生产环境踩坑清单**(每一条都来自实际运营公众号的事故复盘)。
## 快速开始
```bash
export WX_APPID=wx开头的AppID
export WX_SECRET=公众号AppSecret
python3 scripts/wxoa.py token # 验证凭证
python3 scripts/wxoa.py call /cgi-bin/get_api_domain_ip # 冒烟测试
```
脚本行为声明:仅请求 `api.weixin.qq.com`;本地只写一个 token 缓存文件
(系统临时目录,7000 秒过期),不读写其他文件。
## 命令手册
| 命令 | 作用 |
|------|------|
| `token` | 取 access_token(本地缓存,避免重复刷新挤掉线上服务的 token) |
| `call <path> [json]` | 通用调用:任何官方接口,无 body 为 GET,有 body 为 POST |
| `upload-image <file>` | 上传正文内图片(uploadimg,返回 url,不占素材库) |
| `upload-thumb <file>` | 上传永久图片素材(返回 media_id,作草稿封面) |
| `draft-add <标题> <html文件> <thumb_media_id> [作者] [摘要]` | 新建图文草稿 |
| `drafts [offset] [count]` | 列草稿箱 |
| `publish <media_id>` | 发布草稿(freepublish/submit) |
| `published [offset] [count]` | 列已发表记录 |
### 发一篇文章的完整流程
```bash
python3 scripts/wxoa.py upload-thumb cover.jpg
# → {"media_id": "MEDIA_ID", "url": "..."}
python3 scripts/wxoa.py draft-add "文章标题" article.html MEDIA_ID "作者名" "摘要"
# → {"media_id": "DRAFT_MEDIA_ID"}
python3 scripts/wxoa.py publish DRAFT_MEDIA_ID
# → {"publish_id": "..."}(异步,稍后用 published 查结果)
```
`call` 兜底示例(脚本未封装的接口都能调):
```bash
python3 scripts/wxoa.py call /cgi-bin/menu/get
python3 scripts/wxoa.py call /cgi-bin/user/get
python3 scripts/wxoa.py call /cgi-bin/message/template/send '{"touser":"OPENID","template_id":"...","data":{}}'
```
## 实战踩坑清单(生产事故复盘)
1. **40164 = IP 不在白名单**。公众号后台"IP白名单"只认配置过的服务器
出口 IP。本地开发机直接调 token 必挂——要么把出口 IP 加白名单,
要么经已加白的服务器中转。
2. **45009 = 接口日配额耗尽**。draft/freepublish 等接口有每日调用上限,
耗尽后当天无解,次日 0 点重置。批量操作前先估算次数,脚本里
**不要**对 45009 做无脑重试。
3. **access_token 全局唯一**。任何一端刷新 token 会使旧 token 失效——
本脚本做了本地缓存,但若线上服务也在刷 token,两边会互相挤掉线。
生产环境必须中心化缓存(Redis 等),临时脚本操作尽量复用线上缓存。
4. **发表记录里的标题会被截断**。用标题反查已发表文章时必须做
**子串匹配**,完整标题 == 匹配会漏。freepublish/batchget 也只能
拉最近的记录,历史全量要自己本地存档。
5. **推草稿前先去重**。同名文章已在草稿箱或已发表时重复 push 会造成
重复群发风险,push 前先查 drafts + published 双向子串匹配。
6. **author 字段为空时部分第三方工具会跳过署名**,导致历史旧笔名残留。
建草稿时显式传作者名。
7. **平台会判定"低创作度内容"**。纯 AI 生成、排比堆砌、无真实锚点的
文章可能被限流。发布前自查:有无真实数据/引用/具体案例。
8. **封面必须独立生成**。公众号封面比例 900×383,从 16:9 头图硬裁
必丢内容。
## 开发知识速查
### 服务器接入验证
```python
# GET 回调: sha1(sorted([token, timestamp, nonce])) == signature 则原样返回 echostr
tmp = ''.join(sorted([token, timestamp, nonce]))
ok = hashlib.sha1(tmp.encode()).hexdigest() == signature
```
### 网页授权 OAuth2.0(三步)
1. 跳 `open.weixin.qq.com/connect/oauth2/authorize`(scope=snsapi_base
静默拿 openid / snsapi_userinfo 弹窗拿资料)
2. code 换 token:`/sns/oauth2/access_token`
3. 拉用户信息:`/sns/userinfo`(此 token 与全局 access_token 是两回事)
### 小程序登录
`wx.login()` 取 code → 服务端 `/sns/jscode2session` 换 openid+session_key
→ 生成自定义登录态。**session_key 绝不下发前端。**
### JSSDK 签名
`sha1("jsapi_ticket=T&noncestr=N×tamp=TS&url=U")`,url 取 `#` 前部分。
jsapi_ticket 用全局 access_token 换取,同样需要中心化缓存。
### 支付 V3 要点
- 域名 `api.mch.weixin.qq.com`,JSON + SHA256withRSA 商户私钥签名
- 回调必须验签 + AES-256-GCM 解密 + **幂等处理**(微信会重复通知)
- 商户私钥/APIv3 密钥绝不进版本库
### API 域名速查
| 用途 | 域名 |
|------|------|
| 公众号/小程序 API | api.weixin.qq.com |
| 微信支付 | api.mch.weixin.qq.com |
| 网页授权入口 | open.weixin.qq.com |
| 企业微信 | qyapi.weixin.qq.com |
## 本 skill 不做什么
- 不提供绕过微信审核、风控或反自动化机制的方法
- 不含个人微信号(非公众平台)自动化——那是封号高危区
- 群发、模板消息等触达用户的写操作,agent 必须先向用户确认再执行
- 企业微信深度集成建议用专门的 `wework` skill
用 gh 命令列工具檢視 GitHub 上的 PR 檢查、工作流執行與 API 查詢的技能。
聚合 16 個搜尋引擎、無需 API Key 的檢索技能。
用命令列直接列出、配置、授權並呼叫 MCP 服務與工具。
根據文字描述生成 Mermaid 圖表程式碼。
用受管 OAuth 訪問 YouTube Data API,檢索影片並管理頻道內容。
透過受管的 OAuth 連線訪問 GitHub REST API。
覆蓋規劃、實現、驗證與測試的編碼工作流技能。
整理 Docker 常用命令與容器工作流的技能。
資料月份:2026-09 · 下載/星標/安裝數聚合自公開技能註冊庫(ClawHub、SkillHub),按月更新。口徑說明見資料方法。