Skip to content
1812z edited this page Nov 5, 2025 · 7 revisions

📌 API 快速导航

后台管理

数据上报

数据查询

AI总结

其他


接口详情

POST /api

接收客户端发送的设备使用数据

请求参数

参数 类型 必需 说明
secret string 请求验证密钥
device string 设备唯一标识
app_name string 可选 应用名称(running=true时必填)
running boolean 可选 是否正在运行(默认true)
batteryLevel number 可选 电池电量(1-100)
isCharging boolean 可选 设备充电状态(默认false)

响应

{
  "success": true
}

GET /api/devices

获取所有设备的列表及其当前状态。

响应:

返回设备列表数组,每个设备包含:
- `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"
  }
]

GET /api/recent/:deviceId

获取指定设备最近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
}

GET /api/stats/:deviceId

获取指定设备某天的统计数据。

路径参数:

  • deviceId (string) - 设备标识符

查询参数:

参数 类型 默认值 说明
date string 当天 日期(YYYY-MM-DD)

响应:

  • total (number) - 总使用时长(分钟)
  • apps (object) - 各应用使用时长统计
  • hours (array) - 每小时使用时长统计(24小时)
  • appHours (object) - 各应用每小时使用时长统计
  • appName (string) - 应用名称

GET /api/weekly/:deviceId

获取指定设备某周的统计数据(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总结相关接口

GET /api/ai/summary/:deviceId

获取指定设备最近生成的AI总结。

路径参数:

  • deviceId (string) - 设备标识符

响应:

  • success (boolean) - 请求是否成功
  • deviceId (string) - 设备ID
  • summary (string) - AI生成的总结内容
  • timestamp (string) - 总结生成时间
  • dateRange (object) - 总结覆盖的时间范围

GET /api/ai/summaries

获取所有设备的最近AI总结。

响应:

  • success (boolean) - 请求是否成功
  • count (number) - 总结数量
  • summaries (object) - 各设备总结数据

GET /api/ai/trigger/:deviceId

手动触发指定设备的AI总结生成(需要secret验证)。

路径参数:

  • deviceId (string) - 设备标识符

查询参数:

参数 类型 必需 说明
secret string API密钥
date string 指定日期(YYYY-MM-DD)
timezoneOffset number 时区偏移(小时)

响应:

  • success (boolean) - 是否触发成功
  • taskId (string) - 任务ID
  • message (string) - 状态信息

GET /api/ai/status

获取AI总结服务状态信息。

响应:

{
  "enabled": true,
  "aiConfigured": true,
  "publishConfigured": true,
  "cronJobsCount": 3,
  "schedules": ["0:00", "8:00", "16:00"],
  "model": "gpt-3.5-turbo",
  "defaultTimezone": "UTC+8"
}

GET /api/ip

获取客户端IP地址。

响应:

  • ip (string) - 客户端IP地址

示例响应:

{
  "ip":"111.1.127.203"
}