-
Notifications
You must be signed in to change notification settings - Fork 17
API
1812z edited this page Nov 5, 2025
·
7 revisions
-
POST /api- 提交设备使用数据
-
GET /api/devices- 获取所有设备列表 -
GET /api/recent/:deviceId- 查询设备最近记录 -
GET /api/stats/:deviceId- 单日使用统计 -
GET /api/weekly/:deviceId- 周维度统计 - 不带deviceId则查询全局统计数据
-
GET /api/ai/summary/:deviceId- 获取设备最近AI总结 -
GET /api/ai/summaries- 获取所有设备总结 -
GET /api/ai/trigger/:deviceId- 手动触发AI总结 -
GET /api/ai/status- 获取AI服务状态
-
GET /api/ip- 获取客户端IP -
GET /api/pageconfig- 获取页面配置
接收客户端发送的设备使用数据
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
secret |
string | 是 | 请求验证密钥 |
device |
string | 是 | 设备唯一标识 |
app_name |
string | 可选 | 应用名称(running=true时必填) |
running |
boolean | 可选 | 是否正在运行(默认true) |
batteryLevel |
number | 可选 | 电池电量(1-100) |
isCharging |
boolean | 可选 | 设备充电状态(默认false) |
{
"success": true
}获取所有设备的列表及其当前状态。
响应:
返回设备列表数组,每个设备包含:
- `device` (string) - 设备标识符
- `currentApp` (string) - 当前应用名称
- `running` (boolean) - 应用是否正在运行
- `runningSince` (date) - 应用开始运行时间
- `batteryLevel` (number) - 当前电池电量百分比
- `isCharging` (boolean) - 设备充电状态
- `batteryTimestamp` (date) - 设备电量信息更新时间
示例请求:
GET /api/devices示例响应:
[
{
"device": "手机",
"currentApp": "Edge",
"running": true,
"runningSince": "2025-10-02T17:16:01.174Z",
"batteryLevel": "71",
"isCharging": false,
"batteryTimestamp": "2025-10-02T17:14:38.230Z"
}
]获取指定设备最近30条应用切换记录。
路径参数:
-
deviceId(string) - 设备标识符
响应: 返回应用切换记录数组,每条记录包含:
-
appName(string) - 应用名称 -
timestamp(date) - 应用开始时间 -
running(boolean) - 应用是否正在运行
示例请求:
GET /api/recent/手机示例响应:
{
"success": true,
"data": [
{
"appName": "TIM",
"timestamp": "2025-09-24T06:34:48.661Z",
"running": true
}
],
"count": 1
}获取指定设备某天的统计数据。
路径参数:
-
deviceId(string) - 设备标识符
查询参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
date |
string | 当天 | 日期(YYYY-MM-DD) |
响应:
-
total(number) - 总使用时长(分钟) -
apps(object) - 各应用使用时长统计 -
hours(array) - 每小时使用时长统计(24小时) -
appHours(object) - 各应用每小时使用时长统计 -
appName(string) - 应用名称
获取指定设备某周的统计数据(7天内每个应用的每日使用时间)。
路径参数:
-
deviceId(string) - 设备标识符
查询参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
weekOffset |
number | 0 | 周偏移(0=本周,-1=上周,-2=上上周) |
appName |
string | null | 应用名称(可选,不传则返回所有应用) |
响应:
-
weekOffset(number) - 周偏移值 -
weekRange(object) - 周日期范围-
start(string) - 开始日期(YYYY-MM-DD) -
end(string) - 结束日期(YYYY-MM-DD)
-
-
dailyTotals(object) - 每日总使用时长统计(分钟)-
key: YYYY-MM-DD- 日期 -
value: number- 该日总使用时长(分钟)
-
-
appDailyStats(object) - 各应用每日使用时长统计-
key: appName- 应用名称 -
value: object- 该应用的每日统计-
key: YYYY-MM-DD- 日期 -
value: number- 该应用在该日的使用时长(分钟)
-
-
示例请求:
GET /api/weekly/device123?weekOffset=0
GET /api/weekly/device123?weekOffset=-1&appName=微信示例响应:
{
"weekOffset": 0,
"weekRange": {
"start": "2025-09-22",
"end": "2025-09-24"
},
"dailyTotals": {
"2025-09-22": 120.5,
"2025-09-23": 180.25,
"2025-09-24": 95.75
},
"appDailyStats": {
"微信": {
"2025-09-22": 60.5,
"2025-09-23": 80.25,
"2025-09-24": 45.0
},
"抖音": {
"2025-09-22": 60.0,
"2025-09-23": 100.0,
"2025-09-24": 50.75
}
}
}获取指定设备最近生成的AI总结。
路径参数:
-
deviceId(string) - 设备标识符
响应:
-
success(boolean) - 请求是否成功 -
deviceId(string) - 设备ID -
summary(string) - AI生成的总结内容 -
timestamp(string) - 总结生成时间 -
dateRange(object) - 总结覆盖的时间范围
获取所有设备的最近AI总结。
响应:
-
success(boolean) - 请求是否成功 -
count(number) - 总结数量 -
summaries(object) - 各设备总结数据
手动触发指定设备的AI总结生成(需要secret验证)。
路径参数:
-
deviceId(string) - 设备标识符
查询参数:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
secret |
string | 是 | API密钥 |
date |
string | 否 | 指定日期(YYYY-MM-DD) |
timezoneOffset |
number | 否 | 时区偏移(小时) |
响应:
-
success(boolean) - 是否触发成功 -
taskId(string) - 任务ID -
message(string) - 状态信息
获取AI总结服务状态信息。
响应:
{
"enabled": true,
"aiConfigured": true,
"publishConfigured": true,
"cronJobsCount": 3,
"schedules": ["0:00", "8:00", "16:00"],
"model": "gpt-3.5-turbo",
"defaultTimezone": "UTC+8"
}获取客户端IP地址。
响应:
-
ip(string) - 客户端IP地址
示例响应:
{
"ip":"111.1.127.203"
}