Files
chat-deploy/docs/API_SCHEDULED_TASK.md
kim.dev.6789 b7f8db7d08 复制项目
2026-01-14 22:35:45 +08:00

341 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 定时任务 API 接口文档
## 基础信息
- **基础路径**: `/scheduled_task`
- **认证方式**: 所有接口都需要在请求头中携带 `token`(通过 `mw.CheckToken` 中间件验证)
- **请求方法**: 所有接口均为 `POST`
## 公共数据结构
### ScheduledTaskMessage消息内容
```json
{
"type": 1, // 消息类型1-文本2-图片3-视频
"content": "string", // 消息内容文本内容、图片URL、视频URL等
"thumbnail": "string", // 缩略图URL用于图片和视频可选
"duration": 0, // 时长(秒,用于视频,可选)
"fileSize": 0 // 文件大小(字节,用于图片和视频,可选)
}
```
### ScheduledTaskInfo定时任务信息
```json
{
"id": "string", // 任务ID
"userID": "string", // 用户ID
"name": "string", // 任务名称
"cronExpression": "string", // Crontab表达式分 时 日 月 周(例如:"0 9 * * *"
"messages": [ // 消息列表(支持多条消息一起发送)
{
"type": 1,
"content": "string",
"thumbnail": "string",
"duration": 0,
"fileSize": 0
}
],
"recvIDs": ["string"], // 接收者ID列表单聊可以多个
"groupIDs": ["string"], // 群组ID列表群聊可以多个
"status": 1, // 状态0-已禁用1-已启用
"createTime": 1234567890123, // 创建时间(毫秒时间戳)
"updateTime": 1234567890123 // 更新时间(毫秒时间戳)
}
```
### RequestPagination分页信息
```json
{
"pageNumber": 1, // 页码从1开始
"showNumber": 10 // 每页显示数量
}
```
## Crontab 表达式说明
格式:`分 时 日 月 周`
- **分**: 0-59
- **时**: 0-23
- **日**: 1-31
- **月**: 1-12
- **周**: 0-70和7都表示周日
### 示例
- `"0 9 * * *"` - 每天9点执行
- `"*/5 * * * *"` - 每5分钟执行
- `"0 0 * * 1"` - 每周一0点执行
- `"0 12 * * 1-5"` - 周一到周五每天12点执行
- `"0 0 1 * *"` - 每月1号0点执行
---
## 1. 创建定时任务
**接口地址**: `POST /scheduled_task/create`
**请求参数**:
```json
{
"name": "string", // 必填:任务名称
"cronExpression": "string", // 必填Crontab表达式
"messages": [ // 必填:消息列表(至少一条)
{
"type": 1, // 必填消息类型1-文本2-图片3-视频
"content": "string", // 必填:消息内容
"thumbnail": "string", // 可选缩略图URL
"duration": 0, // 可选:时长(秒)
"fileSize": 0 // 可选:文件大小(字节)
}
],
"recvIDs": ["string"], // 可选接收者ID列表单聊可以多个
"groupIDs": ["string"], // 可选群组ID列表群聊可以多个
"status": 1 // 可选状态0-已禁用1-已启用默认为1
}
```
**注意**: `recvIDs``groupIDs` 至少需要提供一个,不能同时为空。
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"taskID": "string" // 创建的任务ID
}
}
```
**请求示例**:
```json
{
"name": "每日问候",
"cronExpression": "0 9 * * *",
"messages": [
{
"type": 1,
"content": "早上好!"
},
{
"type": 2,
"content": "https://example.com/image.jpg",
"thumbnail": "https://example.com/thumb.jpg",
"fileSize": 102400
}
],
"recvIDs": ["user1", "user2"],
"groupIDs": ["group1"],
"status": 1
}
```
---
## 2. 获取定时任务详情
**接口地址**: `POST /scheduled_task/get`
**请求参数**:
```json
{
"taskID": "string" // 必填任务ID
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"task": { // 定时任务信息
"id": "string",
"userID": "string",
"name": "string",
"cronExpression": "string",
"messages": [
{
"type": 1,
"content": "string",
"thumbnail": "string",
"duration": 0,
"fileSize": 0
}
],
"recvIDs": ["string"],
"groupIDs": ["string"],
"status": 1,
"createTime": 1234567890123,
"updateTime": 1234567890123
}
}
}
```
---
## 3. 获取定时任务列表
**接口地址**: `POST /scheduled_task/list`
**请求参数**:
```json
{
"pagination": { // 必填:分页信息
"pageNumber": 1, // 页码从1开始
"showNumber": 10 // 每页显示数量
}
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"total": 100, // 总数
"tasks": [ // 任务列表
{
"id": "string",
"userID": "string",
"name": "string",
"cronExpression": "string",
"messages": [
{
"type": 1,
"content": "string",
"thumbnail": "string",
"duration": 0,
"fileSize": 0
}
],
"recvIDs": ["string"],
"groupIDs": ["string"],
"status": 1,
"createTime": 1234567890123,
"updateTime": 1234567890123
}
]
}
}
```
---
## 4. 更新定时任务
**接口地址**: `POST /scheduled_task/update`
**请求参数**:
```json
{
"taskID": "string", // 必填任务ID
"name": "string", // 可选:任务名称
"cronExpression": "string", // 可选Crontab表达式
"messages": [ // 可选:消息列表
{
"type": 1,
"content": "string",
"thumbnail": "string",
"duration": 0,
"fileSize": 0
}
],
"recvIDs": ["string"], // 可选接收者ID列表
"groupIDs": ["string"], // 可选群组ID列表
"status": 1 // 可选状态0-已禁用1-已启用
}
```
**注意**:
- 所有字段都是可选的,只更新提供的字段
- 如果更新 `recvIDs``groupIDs`,确保至少有一个不为空
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {}
}
```
**请求示例**:
```json
{
"taskID": "task123",
"name": "更新后的任务名称",
"status": 0
}
```
---
## 5. 删除定时任务
**接口地址**: `POST /scheduled_task/delete`
**请求参数**:
```json
{
"taskIDs": ["string"] // 必填任务ID列表支持批量删除
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {}
}
```
**请求示例**:
```json
{
"taskIDs": ["task1", "task2", "task3"]
}
```
---
## 错误码说明
- `0`: 成功
- 其他错误码请参考系统错误码定义
## 注意事项
1. 所有接口都需要在请求头中携带有效的 `token`
2. 用户只能操作自己创建的定时任务
3. `recvIDs``groupIDs` 可以同时提供,表示同时发送到多个单聊和群聊
4. `messages` 数组支持多条消息,会按顺序发送
5. Crontab 表达式需要符合标准格式,客户端负责解析和执行
6. 服务端只负责存储配置,不执行定时任务