zhangifonly

Weixin

開發程式設計v2.0.0
作者:zhangifonly更新於 2026-07-11共 3 個版本 · 最新版本釋出於 2026-07-11weixin@clawhub_zhangifonly/weixin
程式碼生成後端開發指令碼工具#全栈开发#Miniprogram#Official Account#Payment#WeChat

據 AlphaMoat 統計,截至 2026-09,Weixin 累計下載 4,037 次、獲 5 個星標,在全部 5,078 個 AI 技能中排名第 2,528 位,在「開發程式設計」分類(577 個)中排名第 331 位。

累計安裝
102
累計下載
4037
星標
5
全站排名
#2,528
全站前 50% · 「開發程式設計」前 58%
平台累計安裝累計下載星標評論
ClawHub ↗10238271-
SkillHub ↗9840375—

各平台的計數口徑不同,統計時間不一致。

這個技能是做什麼的

它附帶基於 Python 標準庫的 CLI,可獲取或快取 access_token、呼叫官方介面、上傳圖片素材、建立和查詢草稿、釋出文章及檢視發表記錄,並提供 OAuth、JSSDK 和支付接入要點。AppSecret、access_token、商戶私鑰等憑據必須保護;釋出文章、群發或模板訊息會觸達外部使用者,執行前應核對內容、目標並取得確認。

資料釋出於 2026-10-29

可以用來做什麼

  • 查詢或呼叫微信公眾號介面並管理媒體素材。
  • 準備圖文草稿、檢查草稿箱或檢視發表記錄。
  • 瞭解公眾號、小程式登入授權和支付回撥的開發注意事項。

什麼時候用

  • 需要管理公眾號素材、草稿或已發表記錄時。
  • 需要排查 API 配額、IP 白名單或 token 快取問題時。
  • 釋出文章、群發訊息或傳送模板通知前,需要檢查目標、內容、許可權並取得使用者確認時。

示例提示詞

以下是根據技能文件生成的示例,不代表實際執行結果。

列出新建公眾號草稿所需的檔案與引數,不釋出文章。
釋出這份草稿前先彙總目標、內容和可能重複釋出風險,等待我確認。

月度資料趨勢

累計下載4037
2310323841652026-05 · 累計下載 24382026-06 · 累計下載 26452026-07 · 累計下載 33452026-08 · 累計下載 36392026-09 · 累計下載 403726-0526-09
星標5
1352026-05 · 星標 22026-06 · 星標 32026-07 · 星標 12026-08 · 星標 52026-09 · 星標 526-0526-09

2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。

月份累計下載環比星標
2026-094037—5
2026-083639+8.8%5
2026-073345+26.5%1
2026-062645+8.5%3
2026-052438—2

SKILL.md 原文

以下是作者釋出的原始檔案,按純文字顯示,本站未做修改或稽核;其中的連結不可點選,命令請核實後再執行。抓取於 2026-10-23。

6.0 KB · ClawHub v2.0.0
---
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
展開全部(共 133 行)

不止讲"微信开发是什么"——本 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&timestamp=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

「開發程式設計」分類下的熱門技能

資料月份:2026-09 · 下載/星標/安裝數聚合自公開技能註冊庫(ClawHub、SkillHub),按月更新。口徑說明見資料方法。