# /// # API.md # 描述:WXAuto Center API 接口文档 # 作者:AI Generated # 创建日期:2026-04-06 # 更新日期:2026-04-06 # /// # WXAuto Center API 接口文档 ## 概述 本系统提供完整的 RESTful API,支持节点管理、消息发送、插件管理、外部程序接入、Webhook 管理等功能。所有 API 均使用 JSON 格式进行请求和响应。 ## 基础信息 | 项目 | 说明 | |------|------| | Base URL | `http://{host}:{port}/api/v1` | | 默认端口 | 8080 | | 内部 API 认证 | Header: `X-API-Key: your-external-api-key` | | 外部 API 认证 | Header: `X-ExternalKey: your-external-api-key` | | 响应格式 | JSON | ## API 列表 ### 节点管理 `/api/v1/nodes` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/nodes/` | 获取所有节点 | | GET | `/nodes/{node_id}` | 获取指定节点信息 | | POST | `/nodes/` | 添加节点 | | PUT | `/nodes/{node_id}` | 更新节点信息 | | DELETE | `/nodes/{node_id}` | 删除节点 | | GET | `/nodes/{node_id}/status` | 检查节点状态 | | POST | `/nodes/{node_id}/enable` | 启用节点 | | POST | `/nodes/{node_id}/disable` | 禁用节点 | | GET | `/nodes/{node_id}/friends` | 获取节点好友列表 | | GET | `/nodes/{node_id}/groups` | 获取节点群列表 | | GET | `/nodes/{node_id}/messages/{chat_name}` | 获取聊天消息 | ### 消息管理 `/api/v1/messages` | 方法 | 路径 | 说明 | |------|------|------| | POST | `/messages/send` | 发送消息 | | POST | `/messages/send_group` | 发送群消息 | | POST | `/messages/batch` | 批量发送消息 | | POST | `/messages/template/{node_id}/{who}` | 发送模板消息 | | GET | `/messages/history/{node_id}/{chat_name}` | 获取消息历史 | ### 插件管理 `/api/v1/plugins` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/plugins/` | 获取所有插件 | | GET | `/plugins/{plugin_name}` | 获取插件详情 | | GET | `/plugins/{plugin_name}/schema` | 获取插件表单Schema | | POST | `/plugins/{plugin_name}/enable` | 启用插件 | | POST | `/plugins/{plugin_name}/disable` | 禁用插件 | | PUT | `/plugins/{plugin_name}/config` | 更新插件配置 | | POST | `/plugins/{plugin_name}/execute` | 执行插件 | | GET | `/plugins/{plugin_name}/logs` | 获取插件日志 | | POST | `/plugins/{plugin_name}/logs/clear` | 清空插件日志 | | GET | `/plugins/type/{plugin_type}` | 按类型获取插件 | ### 回调接口 `/api/v1/callback` | 方法 | 路径 | 说明 | |------|------|------| | POST | `/callback/node/reset` | 重置节点微信状态 | | POST | `/callback/node/check` | 检测节点微信状态 | | GET | `/callback/node/{node_id}/status` | 获取节点回调状态 | ### Webhook 管理 `/api/v1/webhook` | 方法 | 路径 | 说明 | |------|------|------| | GET | `/webhook/` | 获取所有Webhook | | GET | `/webhook/{webhook_id}` | 获取指定Webhook | | POST | `/webhook/` | 添加Webhook | | PUT | `/webhook/{webhook_id}` | 更新Webhook | | DELETE | `/webhook/{webhook_id}` | 删除Webhook | | POST | `/webhook/{webhook_id}/enable` | 启用Webhook | | POST | `/webhook/{webhook_id}/disable` | 禁用Webhook | ### 外部接口 `/api/v1/external` | 方法 | 路径 | 说明 | |------|------|------| | POST | `/external/send` | 外部接口-发送消息 | | POST | `/external/trigger` | 外部接口-触发数据处理 | | POST | `/external/plugin/execute` | 外部接口-执行插件 | | GET | `/external/plugins` | 外部接口-获取可用插件列表 | | GET | `/external/nodes` | 外部接口-获取可用节点 | | POST | `/external/ai/process` | 外部接口-AI处理消息 | | POST | `/external/webhook/{event}` | 外部接口-Webhook接收 | --- ## 节点管理 API 详解 ### 获取所有节点 ``` GET /api/v1/nodes/ ``` **响应示例:** ```json { "success": true, "data": [ { "node_id": "wx1", "name": "微信1", "api_url": "http://192.168.20.84:5000", "enabled": true, "description": "", "group": "wechat", "status": "error", "wechat_status": "online", "is_healthy": false } ], "count": 1 } ``` ### 添加节点 ``` POST /api/v1/nodes/ ``` **请求体:** ```json { "node_id": "wx1", "name": "微信1", "api_url": "http://192.168.20.84:5000", "api_key": "your-node-api-key", "description": "测试节点", "group": "wechat" } ``` ### 更新节点 ``` PUT /api/v1/nodes/{node_id} ``` **请求体:** ```json { "api_url": "http://192.168.20.84:5000", "api_key": "updated-key" } ``` --- ## 消息发送 API 详解 ### 发送消息 ``` POST /api/v1/messages/send ``` **请求体:** ```json { "node_id": "wx1", "who": "文件传输助手", "msg": "测试消息", "msg_type": "text" } ``` **响应示例:** ```json { "success": true, "message": "消息发送成功" } ``` ### 发送群消息 ``` POST /api/v1/messages/send_group ``` **请求体:** ```json { "node_id": "wx1", "group_name": "测试群", "msg": "群消息测试", "msg_type": "text" } ``` --- ## 插件管理 API 详解 ### 获取所有插件 ``` GET /api/v1/plugins/ ``` **响应示例:** ```json { "success": true, "plugins": [ { "name": "http_scheduled_sender", "version": "1.0.0", "type": "scheduled_task", "description": "定时HTTP数据源推送", "enabled": true, "config": { "node_id": "wx1", "receiver": "asq", "cron": "0 8 * * *" } } ], "count": 1 } ``` ### 配置插件 ``` PUT /api/v1/plugins/{plugin_name}/config ``` **请求体:** ```json { "name": "http_scheduled_sender", "config": { "node_id": "wx1", "receiver": "文件传输助手", "cron": "0 8 * * *", "http_url": "https://api.example.com/news", "message_template": "📰 {title}\n{url}" } } ``` ### 执行插件 ``` POST /api/v1/plugins/{plugin_name}/execute ``` **请求体:** ```json { "action": "preview" } ``` **action 选项:** - `send` - 执行完整流程 - `fetch` - 仅请求API - `parse` - 请求并解析数据 - `preview` - 预览格式化后的消息 - `test` - 测试cron表达式 --- ## 通用响应格式 **成功:** ```json { "success": true, "data": {}, "message": "操作成功" } ``` **失败:** ```json { "success": false, "error": "错误描述" } ``` --- ## 插件类型 | 类型 | 值 | 说明 | |------|-----|------| | `message_handler` | MESSAGE_HANDLER | 消息处理器 | | `data_source` | DATA_SOURCE | 数据源 | | `action_trigger` | ACTION_TRIGGER | 动作触发器 | | `ai_agent` | AI_AGENT | AI智能体 | | `scheduled_task` | SCHEDULED_TASK | 定时任务 | | `http_scheduled_sender` | HTTP_SCHEDULED_SENDER | 定时HTTP推送 | | `custom` | CUSTOM | 自定义 | --- ## 节点数据模型 ```json { "node_id": "wx1", "name": "微信1", "api_url": "http://192.168.20.84:5000", "api_key": "your-key", "enabled": true, "description": "", "group": "wechat", "status": "active", "wechat_status": "online", "is_healthy": true } ``` | 字段 | 类型 | 说明 | |------|------|------| | node_id | string | 节点唯一标识 | | name | string | 节点显示名称 | | api_url | string | 节点API地址 | | api_key | string | 节点API密钥 | | enabled | bool | 是否启用 | | description | string | 节点描述 | | group | string | 节点分组 | | status | string | API状态 (active/inactive/error) | | wechat_status | string | 微信状态 (online/offline) | | is_healthy | bool | 健康状态 |