外观
Restful API数据上报(V2版本)
782 字约 3 分钟
2026-08-24
相关信息
该版本的上报接口删除了 appid 字段,改用 appKey 来管理和识别项目数据,增强了数据来源的安全性校验。
在开始对接前,需要先阅读数据上报规则,在熟悉彩虹的数据格式与数据规则后,再阅读本指南进行对接。
appKey 获取方式
- 彩虹系统地址:
http://www.datapool-ymjh.cn/ - 进入彩虹系统 -> 系统管理 -> 系统接入,找到对应的项目并复制 AppKey。
上报地址
- 验证地址:
https://jdlogs.datapool-ymjh.cn/v2/real_time/debug(数据不入库,只验证数据是否在埋点内) - 正式地址:
https://jdlogs.datapool-ymjh.cn/v2/sync_json
请求说明
| 项目 | 值 |
|---|---|
| 请求方式 | POST |
| 请求数据类型 | application/json |
| 响应数据类型 | application/json |
请求示例
如果是一条 json 数据:
{
"appKey":"xxx",
"data":[
{
"$account_id":"oONoI5WzrUWCJ94S3IqzTKbRxWQw",
"$distinct_id":"e67c91e4-0e8e-4701-9019-d2fdffc27211",
"$type":"track",
"$event_time": "2022-04-27 09:36:40",
"$event_name": "login",
"properties":{
"$lib": "wx-minigame",
"is_first_login": 0,
"$os_version": "Android 11",
"$device_id": "e67c91e4-0e8e-4701-9019-d2fdffc27211",
"$device_model": "M2012K11AC",
"$lib_version": "1.0.0",
"$os": "android",
"$scene": "1037",
"$channel": "1091",
"$app_version": "1.7.1"
}
}
]
}如果是多条数据:
{
"appKey":"xxx",
"data":[
{
"$account_id":"oONoI5WzrUWCJ94S3IqzTKbRxWQw",
"$distinct_id":"e67c91e4-0e8e-4701-9019-d2fdffc27211",
"$type":"track",
"$event_time": "2022-04-27 09:36:40",
"$event_name": "login",
"properties":{
"$lib": "wx-minigame",
"is_first_login": 0,
"$os_version": "Android 11",
"$device_id": "e67c91e4-0e8e-4701-9019-d2fdffc27211",
"$device_model": "M2012K11AC",
"$lib_version": "1.0.0",
"$os": "android",
"$scene": "1037",
"$channel": "1091",
"$app_version": "1.7.1"
}
},
{
"$account_id":"oONoI5WzrUWCJ94S3IqzTKbRxWQw",
"$distinct_id":"e67c91e4-0e8e-4701-9019-d2fdffc27211",
"$type":"track",
"$event_time": "2022-04-27 09:36:40",
"$event_name": "login",
"properties":{
"$lib": "wx-minigame",
"is_first_login": 0,
"$os_version": "Android 11",
"$device_id": "e67c91e4-0e8e-4701-9019-d2fdffc27211",
"$device_model": "M2012K11AC",
"$lib_version": "1.0.0",
"$os": "android",
"$scene": "1037",
"$channel": "1091",
"$app_version": "1.7.1"
}
}
]
}请求参数
| 参数名称 | 参数说明 | 是否必须 | 数据类型 |
|---|---|---|---|
| requestBody | syncJsonRequest | true | object |
| appKey | 应用密钥 | true | string |
| clientIp | 客户端ip | false | string |
| $type | 事件/用户操作类型 | true | string |
| $account_id | 账号id($account_id 和 $distinct_id 至少需要传入一个) | false | string |
| $distinct_id | 访客id($account_id 和 $distinct_id 至少需要传入一个) | false | string |
| $event_name | 事件名称(track 类操作下非必传字段) | false | string |
| $event_time | 事件/用户操作发生的时间,时间格式:yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd HH:mm:ss.SSS | true | string |
| $server_time | 服务器时间,时间格式:yyyy-MM-dd HH:mm:ss 或 yyyy-MM-dd HH:mm:ss.SSS | false | string |
| data | 单条/多条事件数据 | false | object |
响应参数
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| code | 状态码,返回 0 表示数据接收成功(不代表校验成功)。非 0 状态码表示数据初步校验失败 | integer(int32) | integer(int32) |
| data | 内容 | object | |
| msg | 消息 | string |
响应示例
{
"code": 0,
"msg": "SUCCESS",
"data": ""
}注意
注意:返回 "code": 0, "msg": "SUCCESS" 不代表入库成功,这只代表将消息放入消息队列中。
想看数据是否真正入库,去彩虹后台查看数据(数据有延迟,半分钟以内可以查询到)。
数据格式(Gzip 压缩)
服务器支持 Gzip 格式压缩数据传输。如需使用,请在 HttpHeaders 添加请求头 {"Content-Encoding":"gzip"},然后使用 gzip 工具压缩 HttpBody。
如果 HttpBody 没有使用 Gzip 压缩,则不要添加 {"Content-Encoding":"gzip"} 请求头。
# 使用gzip压缩数据
gziped_json_data = gzip.compress(bytes(json_data, 'UTF-8'))
# 并添加支持Gzip的请求头
request = requests.post(url_test, data=gziped_json_data, headers={"Content-type": "application/json;charset=UTF-8", "Content-Encoding": "gzip"})