主题
事件上报
接口描述:根据不同的时间类型,上报对应的内容。
根据上报的事件类型数据,会反应在系统的统计数据中。
📮请求信息
请求地址
POST http://api.upgrade.toolsetlink.com/v1/app/report
请求头 (Headers)
参数名 | 必选 | 类型 | 示例值 | 说明 |
---|---|---|---|---|
X-Timestamp | 是 | string | 2025-02-17T10:34:55+08:00 | 请求时间 RFC3339格式 |
X-Nonce | 是 | string | fc812cc0b9b51e8c | 唯一随机字符串(至少16位) |
X-AccessKey | 是 | string | mui2W50H1j-OC4xD6PgQag | 密钥 AccessKey |
X-Signature | 是 | string | 3603437250c2df51fc46426ac79d8995 | 请求签名 签名规则 |
Content-Type | 是 | string | application/json |
🔐 防重放攻击机制
- 服务端验证时间戳与服务器时间差值不超过±5分钟
- 服务端会校验Nonce值是否已存在(防止重复请求)
请求体 (Body) 参数说明
参数名 | 必选 | 类型 | 示例值 | 说明 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
eventType | 是 | string | app_start | 事件类型: app_start 应用启动事件 app_upgrade_download 应用升级-下载事件 app_upgrade_upgrade 应用升级-升级事件 | ||||||||||||
devModelKey | 否 | string | stv1 | 设备机型唯一标识 | ||||||||||||
devKey | 否 | string | 89c8b3d5f2a74e1b | 设备唯一标识(可以使用 mac 作为唯一标识) | ||||||||||||
appKey | 是 | LOYlLXNy7wV3ySuh0XgtSg | LOYlLXNy7wV3ySuh0XgtSg | 应用唯一标识, 取值跟 urlKey 与 fileKey 一致 | ||||||||||||
versionCode | 是 | int | 10 | 当前应用版本号 | ||||||||||||
timestamp | 是 | string | 2025-02-17T10:34:55+08:00 | 事件发生时间 | ||||||||||||
eventData | 是 | 扩展字段 (事件类型 app_start 应用启动事件) | ||||||||||||||
- launchTime | 是 | string | 2025-02-17T10:34:55+08:00 | 应用启动时间 RFC3339格式 | ||||||||||||
eventData | 是 | 扩展字段 (事件类型 app_upgrade_download 应用升级-下载事件) | ||||||||||||||
- downloadVersionCode | 是 | int | 11 | 升级策略返回的升级版本 | ||||||||||||
- code | 是 | int | 0 |
| ||||||||||||
eventData | 是 | 扩展字段 (事件类型 app_upgrade_upgrade 应用升级-升级事件) | ||||||||||||||
- upgradeVersionCode | 是 | int | 11 | 升级策略返回的升级版本 | ||||||||||||
- code | 是 | int | 0 |
| ||||||||||||
请求体示例 (Body)
app_download 应用-下载事件 (在调用 首次下载 接口时,此事件自动录入数据,不需要请求)
json
{
"eventType": "app_download",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"versionCode": 1,
"timestamp": "2025-02-17T10:34:55+08:00"
}
app_start 应用-启动事件
json
{
"eventType": "app_start",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"versionCode": 1,
"timestamp": "2025-02-17T10:34:55+08:00",
"eventData": {
"launchTime": "2025-02-17T10:34:55+08:00"
}
}
app_upgrade_download 应用升级-下载事件
json
{
"eventType": "app_upgrade_download",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"versionCode": 1,
"timestamp": "2025-02-17T10:34:55+08:00",
"eventData": {
"downloadVersionCode": 2,
"code": 0
}
}
app_upgrade_upgrade 应用升级-升级事件
json
{
"eventType": "app_upgrade_download",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"versionCode": 1,
"timestamp": "2025-02-17T10:34:55+08:00",
"eventData": {
"upgradeVersionCode": 2,
"code": 0
}
}
📮响应信息
成功响应体
json
{
"code": 200,
"msg": "上报成功"
}
典型错误响应体
json
{
"code": 400002,
"msg": "参数缺失"
}
📊状态码
http 状态码 | code | 场景描述 | 解决方案 |
---|---|---|---|
200 | 0 | 请求成功 | |
400 | 400001 | 非法请求 | |
400 | 400002 | 参数缺失 | |
400 | 400003 | 参数非法 | |
400 | 400004 | 报头非法 | |
400 | 400005 | 报体非法 | |
401 | 401001 | 鉴权失败 | |
401 | 401002 | 签名验证失败 | |
404 | 404001 | 资源不存在 | |
404 | 404002 | 查询记录不存在 | |
404 | 404003 | 处理方式不存在 | |
404 | 404004 | 请求不存在 | |
500 | 500001 | 服务器内部错误 | 请联系我们 联系我们 |
500 | 500002 | 服务器内部校验数据失败 | 请联系我们 联系我们 |