140 lines
3.1 KiB
Markdown
140 lines
3.1 KiB
Markdown
# 微信公众号插件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": "<p>文章内容</p>",
|
||
"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. 草稿内容需要符合微信公众号的内容规范 |