WeChat GZH - 微信公众号管理
微信公众号 API 封装,支持素材管理和发布能力。
功能列表
1. 凭证管理
- -
get_stable_access_token - 获取稳定版 Access Token
2. 素材管理
- -
add_material - 上传永久素材(图片/视频/语音/缩略图) - INLINECODE2 - 获取永久素材
3. 发布能力
- -
add_draft - 新建草稿 - INLINECODE4 - 获取草稿列表
- INLINECODE5 - 删除草稿
- INLINECODE6 - 发布草稿
- INLINECODE7 - 发布状态查询
- INLINECODE8 - 获取已发布图文信息
- INLINECODE9 - 获取已发布的消息列表
- INLINECODE10 - 删除发布文章
配置
首次使用需要配置 AppID 和 AppSecret:
CODEBLOCK0
使用方法
Python API
CODEBLOCK1
命令行
CODEBLOCK2
API 端点
凭证
- - 获取 Stable Access Token: INLINECODE11
素材
- - 上传永久素材: INLINECODE12
- 获取永久素材: INLINECODE13
发布
- - 新建草稿: INLINECODE14
- 获取草稿列表: INLINECODE15
- 删除草稿: INLINECODE16
- 发布草稿: INLINECODE17
- 发布状态查询: INLINECODE18
- 获取已发布图文信息: INLINECODE19
- 获取已发布的消息列表: INLINECODE20
- 删除发布文章: INLINECODE21
注意事项
- 1. Access Token 缓存: Token 有效期 7200 秒,建议缓存复用
- 调用频率: 每分钟限制 1 万次,每天 50 万次
- 强制刷新: 每天限用 20 次,需间隔 30 秒
- IP 白名单: 需要在公众号后台配置服务器 IP 白名单
- 权限要求: 部分接口需要认证服务号
错误处理
常见错误码:
- -
40001: invalid credential - accesstoken 无效 - INLINECODE23 : invalid mediaid - 无效的媒体 ID
- INLINECODE24 : api unauthorized - 接口未授权
完整错误码参考:https://developers.weixin.qq.com/doc/oplatform/developers/errCode/errCode.html
示例场景
发布一篇图文
CODEBLOCK3
参考文档
WeChat GZH - 微信公众号管理
微信公众号 API 封装,支持素材管理和发布能力。
功能列表
1. 凭证管理
- - getstableaccess_token - 获取稳定版 Access Token
2. 素材管理
- - addmaterial - 上传永久素材(图片/视频/语音/缩略图)
- getmaterial - 获取永久素材
3. 发布能力
- - adddraft - 新建草稿
- getdraft - 获取草稿列表
- deletedraft - 删除草稿
- submitpublish - 发布草稿
- getpublishstatus - 发布状态查询
- getpublishedarticles - 获取已发布图文信息
- getpublishedlist - 获取已发布的消息列表
- delete_publish - 删除发布文章
配置
首次使用需要配置 AppID 和 AppSecret:
bash
创建配置文件
cat > ~/.wechat
gzhconfig.json << EOF
{
appid: your
appidhere,
secret: your
appsecrethere
}
EOF
设置权限
chmod 600 ~/.wechat
gzhconfig.json
使用方法
Python API
python
from scripts.wechat_gzh import WeChatGZH
初始化
wechat = WeChatGZH()
获取 Access Token
token = wechat.get
stableaccess_token()
上传永久素材
result = wechat.add_material(/path/to/image.jpg, image)
print(f媒体 ID: {result[media_id]})
上传视频素材
result = wechat.add_material(
/path/to/video.mp4,
video,
video_info={title: 我的视频, introduction: 视频描述}
)
获取已发布列表
articles = wechat.get
publishedlist(offset=0, count=10)
发布草稿
result = wechat.submit
publish(mediaid=xxx)
命令行
bash
获取 Access Token
python scripts/wechat_gzh.py get-token
上传永久素材
python scripts/wechat_gzh.py upload-material -f /path/to/image.jpg -t image
python scripts/wechat_gzh.py upload-material -f /path/to/video.mp4 -t video --title 视频标题
获取已发布列表
python scripts/wechat_gzh.py list-published --offset 0 --count 10
发布草稿
python scripts/wechat_gzh.py publish --media-id xxx
查询发布状态
python scripts/wechat_gzh.py status --publish-id xxx
API 端点
凭证
- - 获取 Stable Access Token: POST https://api.weixin.qq.com/cgi-bin/stable_token
素材
- - 上传永久素材: POST https://api.weixin.qq.com/cgi-bin/material/addmaterial
- 获取永久素材: POST https://api.weixin.qq.com/cgi-bin/material/getmaterial
发布
- - 新建草稿: POST https://api.weixin.qq.com/cgi-bin/draft/add
- 获取草稿列表: POST https://api.weixin.qq.com/cgi-bin/draft/batchget
- 删除草稿: POST https://api.weixin.qq.com/cgi-bin/draft/delete
- 发布草稿: POST https://api.weixin.qq.com/cgi-bin/freepublish/submit
- 发布状态查询: POST https://api.weixin.qq.com/cgi-bin/freepublish/get
- 获取已发布图文信息: POST https://api.weixin.qq.com/cgi-bin/freepublish/getarticle
- 获取已发布的消息列表: POST https://api.weixin.qq.com/cgi-bin/freepublish/batchget
- 删除发布文章: POST https://api.weixin.qq.com/cgi-bin/freepublish/delete
注意事项
- 1. Access Token 缓存: Token 有效期 7200 秒,建议缓存复用
- 调用频率: 每分钟限制 1 万次,每天 50 万次
- 强制刷新: 每天限用 20 次,需间隔 30 秒
- IP 白名单: 需要在公众号后台配置服务器 IP 白名单
- 权限要求: 部分接口需要认证服务号
错误处理
常见错误码:
- - 40001: invalid credential - accesstoken 无效
- 40007: invalid mediaid - 无效的媒体 ID
- 48001: api unauthorized - 接口未授权
完整错误码参考:https://developers.weixin.qq.com/doc/oplatform/developers/errCode/errCode.html
示例场景
发布一篇图文
python
1. 准备图文素材(需要先上传)
2. 创建草稿
draft = wechat.add_draft(articles=[{
title: 标题,
content: 正文内容,
thumb
mediaid: 封面图 media_id
}])
3. 发布草稿
result = wechat.submit
publish(mediaid=draft[media_id])
4. 查询发布状态
status = wechat.get
publishstatus(publish
id=result[publishid])
参考文档