# 微信公众号插件API 这是一个基于FastAPI构建的微信公众号插件API服务,提供以下功能: 1. 获取微信公众号access_token 2. 上传临时图片到微信公众号素材库 3. 上传永久图片到微信公众号素材库 4. 上传文章草稿到微信公众号 ## 功能特点 - 基于FastAPI框架,提供高性能的异步API服务 - 自动生成交互式API文档(Swagger UI和ReDoc) - 完整的错误处理和参数验证 - 易于部署和扩展 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 启动服务 ```bash python main.py ``` 服务将在 `http://localhost:8000` 上运行。 ## API文档 启动服务后,可以通过以下地址访问API文档: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc ## API接口说明 ### 1. 获取access_token - **URL**: `/token` - **方法**: POST - **参数**: - `appid` (string): 公众号的APPID - `appsecret` (string): 公众号的AppSecret - **返回**: access_token **示例请求**: ```json { "appid": "your_appid", "appsecret": "your_appsecret" } ``` ### 2. 上传临时图片 - **URL**: `/upload_temp_image` - **方法**: POST - **参数**: - `access_token` (string): 公众号的access_token - `image_url` (string): 图片的URL地址 - **返回**: media_id **示例请求**: ```json { "access_token": "your_access_token", "image_url": "https://example.com/image.jpg" } ``` ### 3. 上传永久图片 - **URL**: `/upload_permanent_image` - **方法**: POST - **参数**: - `access_token` (string): 公众号的access_token - `image_url` (string): 图片的URL地址 - **返回**: 永久素材的media_id **示例请求**: ```json { "access_token": "your_access_token", "image_url": "https://example.com/image.jpg" } ``` ### 4. 上传文章草稿 - **URL**: `/upload_draft` - **方法**: POST - **参数**: - `access_token` (string): 公众号的access_token - `title` (string): 文章标题 - `content` (string): 文章内容(HTML格式) - `cover_media_id` (string): 封面图片的media_id - `author` (string): 作者 - `digest` (string, optional): 文章摘要 - `show_cover_pic` (int, optional): 是否显示封面,0不显示,1显示,默认为1 - **返回**: 草稿的media_id **示例请求**: ```json { "access_token": "your_access_token", "title": "文章标题", "content": "
文章内容
", "cover_media_id": "media_id", "author": "作者名", "digest": "文章摘要", "show_cover_pic": 1 } ``` ## 测试API 项目包含一个测试脚本 `test_api.py`,可以用来测试各个API接口的功能。使用前请先修改脚本中的参数为实际值。 ```bash python test_api.py ``` ## 部署建议 在生产环境中,建议使用以下方式部署: 1. 使用Gunicorn或Uvicorn作为生产级服务器 2. 配置反向代理(如Nginx) 3. 使用环境变量管理敏感配置 4. 添加日志记录和监控 ## 注意事项 1. 请妥善保管公众号的APPID和AppSecret,不要泄露 2. 上传的图片需要符合微信公众号的规范要求 3. 永久素材有数量限制,请合理使用 4. 草稿内容需要符合微信公众号的内容规范