# gzh **Repository Path**: wanjiasu/gzh ## Basic Information - **Project Name**: gzh - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-25 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信公众号 Access Token 获取工具 这是一个用于获取和管理微信公众号 Access Token 的 Python 工具。 ## 功能特性 ### Token 管理 - ✅ 自动获取 Access Token - ✅ 本地缓存 Token,避免频繁请求 - ✅ 自动刷新过期 Token - ✅ 完整的错误处理 - ✅ 支持 API 调用封装 - ✅ 类型提示支持 ### 素材管理 - ✅ 上传永久素材(图片、语音、视频、缩略图) - ✅ 获取素材列表和总数 - ✅ 删除永久素材 - ✅ 文件格式和大小验证 - ✅ 批量上传支持 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 快速开始 ### 1. 配置公众号信息 编辑 `config.py` 文件,填入您的公众号信息: ```python WECHAT_CONFIG = { 'APP_ID': 'your_actual_app_id', 'APP_SECRET': 'your_actual_app_secret', } ``` ### 2. 基本使用 ```python from wechat_token import WeChatTokenManager from config import WECHAT_CONFIG # 创建token管理器 token_manager = WeChatTokenManager( WECHAT_CONFIG['APP_ID'], WECHAT_CONFIG['APP_SECRET'] ) # 获取token token = token_manager.get_access_token() print(f"Access Token: {token}") ``` ### 3. 运行示例 #### Token 获取示例 ```bash python example.py ``` #### 素材上传示例 ```bash # 初始化目录结构 python upload_material_example.py init # 上传图片素材 python upload_material_example.py image # 上传视频素材 python upload_material_example.py video # 上传语音素材 python upload_material_example.py voice # 上传缩略图素材 python upload_material_example.py thumb # 批量上传素材 python upload_material_example.py batch ``` ## API 参考 ### WeChatTokenManager 类 #### 初始化 ```python token_manager = WeChatTokenManager(app_id, app_secret) ``` #### 主要方法 - `get_access_token()` - 获取 Access Token - `refresh_token()` - 强制刷新 Token - `is_token_valid()` - 检查 Token 是否有效 - `get_token_remaining_time()` - 获取 Token 剩余时间 - `get_token_info()` - 获取 Token 详细信息 ### WeChatAPI 类 用于封装微信 API 调用: ```python from wechat_token import WeChatAPI api = WeChatAPI(token_manager) result = api.call_api('/cgi-bin/getcallbackip') ``` ### WeChatMaterialManager 类 用于管理微信公众号素材: ```python from wechat_material import WeChatMaterialManager material_manager = WeChatMaterialManager(token_manager) # 上传图片素材 result = material_manager.upload_permanent_material( file_path='image.jpg', material_type='image' ) # 上传视频素材 result = material_manager.upload_permanent_material( file_path='video.mp4', material_type='video', title='视频标题', introduction='视频简介' ) # 获取素材列表 materials = material_manager.get_material_list('image', 0, 20) # 获取素材总数 count = material_manager.get_material_count() # 删除素材 material_manager.delete_material('media_id') ``` ## 文件说明 - `wechat_token.py` - Token 管理类 - `wechat_material.py` - 素材管理类 - `config.py` - 配置文件 - `example.py` - Token 使用示例 - `upload_material_example.py` - 素材上传示例 - `requirements.txt` - Python 依赖 - `access_token.json` - Token 缓存文件(自动生成) ## 注意事项 ### Token 相关 1. **安全性**: 请妥善保管您的 `APP_SECRET`,不要提交到公共代码仓库 2. **频率限制**: 微信对获取 Access Token 有频率限制(每日2000次),本工具通过本地缓存来避免频繁请求 3. **Token 有效期**: Access Token 有效期为 7200 秒(2小时),工具会自动处理刷新 ### 素材相关 1. **素材库限制**: 图文消息素材、图片素材上限为100000,其他类型为1000 2. **文件格式要求**: - 图片: 10MB以下,支持 bmp/png/jpeg/jpg/gif - 语音: 2MB以下,60秒以内,支持 mp3/wma/wav/amr - 视频: 10MB以下,支持 MP4 - 缩略图: 64KB以下,支持 JPG 3. **域名限制**: 图片素材URL仅可在腾讯系域名内使用 ## 错误处理 工具包含完整的错误处理机制: - 网络请求错误 - 微信 API 错误 - 本地文件读写错误 - Token 过期自动重试 ## 许可证 MIT License ## 支持 如有问题,请检查: 1. APP_ID 和 APP_SECRET 是否正确 2. 网络连接是否正常 3. 公众号是否已认证(某些 API 需要认证后才能使用)