抖音开放平台Logo
开发者文档
控制台

用户战绩与排行榜

收藏
我的收藏

更新记录

时间
更新内容
2024.07.16
创建文档
2024.08.08
    补充「上传世界榜单列表数据」API、「上报用户世界榜单的累计战绩」API、「上报用户对局数据」API、「上报对局榜单列表」API的接口说明。
    新增第四章节「FAQ」板块。

一、整体流程

测试环境前置准备流程:
    在开发者平台添加调试成员。
    接口上传数据,需指定上传到测试环境,详情可以参考接口明细。

二、接入时序

三、接口明细

设置当前生效的世界榜单版本

接口说明

设置线上环境/测试环境生效的世界榜单版本,设置后,小摇杆的「世界榜」将展示新世界榜单版本的数据。

使用限制

小玩法app_id纬度,qps限流配置为 5/s。

基本信息

请求头

名称
字段类型
是否必填
示例
描述
content-type
String
"application/json"
固定值
X-Token
String
xxxxxx

请求参数

    Body
名称
字段类型
是否必填
示例
描述
app_id
String
tt411d37a0xxxxx
小玩法app_id
is_online_version
Bool
FALSE
当前上传的是测试数据还是线上生效的数据;false为测试数据
world_rank_version
String
1722239345
当前榜单的生效版本(自定义),每个玩法只有一个生效版本

请求示例

curl --location 'https://webcast.bytedance.com/api/gaming_con/world_rank/set_valid_version' \ --header 'Content-Type: application/json' \ --header 'X-Token: 08011218462b61527a75317975576630744f4f46386f5' \ --data '{"world_rank_version": "1722239345","is_online_version": false,"app_id": "tt411d37a0dxxxxx" }'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errcode": 0,"errmsg": ""}
异常响应示例
{"errcode": 40001,"errmsg": "request params are invalid"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10037
请求并发调用拦截
app_id维度同时只允许一个请求设置世界榜单版本,请勿并发调用
200
40004
access_token过期
重新生成access_token

上传世界榜单列表数据

接口说明

设置正式环境/测试环境的世界榜单列表数据,榜单列表是指Top 150 的用户数据。如果接口调用的列表长度为 20,则表示榜单列表只展示Top 20的用户数据。
当到达定期更新世界榜单列表的时机时,调用一次,一次性上报世界榜单Top 150,如果调用第二次,第一次的数据会被覆盖,因为底层是以榜单版本world_rank_version为维度存储,榜单版本world_rank_version维度重复上报,是覆盖写的逻辑;
    比如:世界榜单更新逻辑是,每1分钟更新一次
    8:00:调用【上传世界榜单列表数据】接口一次,一次性上报当前时刻的世界榜单Top 150;
    8:01:调用【上传世界榜单列表数据】接口一次,一次性上报当前时刻的世界榜单Top 150,8:00上报的数据,将被8:01这次上报的覆盖;
建议 每 30s 调用一次,刷新最新的Top 150,保障榜单数据时效

使用限制

小玩法app_id纬度,qps限流配置为 5/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
描述
app_id
String
小玩法app_id
world_rank_version
String
开发者指定上传到的榜单版本
is_online_version
Bool
是否是线上版本,默认为false,false为测试数据
rank_list
[Array Item]
世界榜单列表
open_id
String
用户的open_id
rank
Int64
世界榜单排名,从1开始
score
Int64
当前用户的世界榜单积分
winning_streak_count
Int64
当前用户的连胜次数,如果没有连胜记录传0
winning_points
Int64
当前用户的胜点记录,如果没有胜点记录传0

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/world_rank/upload_rank_list' \ --header 'X-Token: 0801121846735352506a356a6' \ --header 'content-type: application/json' \ --data '{"is_online_version":false,"app_id":"tt411d37a0dexxxx","world_rank_version":"1722239345","rank_list":[{"rank":12,"open_id":"HdGIJRpFG1","winning_points":100,"score":100,"winning_streak_count":2}]}'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errmsg": "","errcode": 0}
异常响应示例
{"errcode": 40004,"errmsg": "access token is expired"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配等
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10011
榜单排名有误
请检查上传的榜单排名是否为负数、榜单积分顺序是否有误(前一个排名积分需要大于后一个排名积分)
200
40004
access_token过期
重新生成access_token,重新请求

上报用户世界榜单的累计战绩

接口说明

上报用户世界榜单的累计战绩,单次调用最多上报50个用户战绩。
本接口和【上传世界榜单列表数据】接口逻辑是不一样的。
    【上传世界榜单列表数据】接口是一次性上传排好序的榜单Top 150的用户数据,数据直接展示在小摇杆的「世界榜」的榜单中,平台不做特殊处理,直接展示;底层是以榜单版本world_rank_version为维度存储,榜单版本world_rank_version维度重复上报,是覆盖写的逻辑;
    本接口是上传所有参与玩法并且有战绩的用户数据,批量上报,底层是以用户id+榜单版本world_rank_version为维度存储,用户id+榜单版本world_rank_version维度重复上报,是覆盖写的逻辑;
【上传世界榜单列表数据】接口上传了榜单Top 150的用户数据
【上报用户世界榜单的累计战绩】接口依然需要再次上报Top 150的用户数据,同时也用于上报Top 150 以外的用户数据。
如果小玩法的玩家数量非常大,所有玩家的战绩都上报,存在较大的系统瓶颈问题,可以只上报大于 x 积分的用户数据,低于 x 积分的用户数据不上报。

使用限制

小玩法app_id纬度,qps限流配置为 100/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
描述
app_id
String
小玩法app_id
is_online_version
Bool
是否是线上版本,默认为false,为false代表测试数据
world_rank_version
String
开发者指定上传到的榜单版本
user_list
[Array Item]
用户累计战绩数据列表
open_id
String
用户的open_id
rank
Int64
用户的世界榜单排名,从1开始
超过1000的,可以固定传递1000,抖音端会展示为 "999+"
score
Int64
用户当前的世界榜单积分
winning_points
Int64
用户的胜点信息,如果没有胜点记录传0
winning_streak_count
Int64
用户的连胜次数,如果没有连胜记录传0

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/world_rank/upload_user_result' \ --header 'content-type: application/json' \ --header 'X-Token: 0801121846735352506a356a6' \ --data '{"user_list":[{"score":101,"winning_streak_count":1,"rank":2704557422832063234,"open_id":"8P0gagOFad","winning_points":12}],"is_online_version":false,"app_id":"tt411d37a0dxxxx","world_rank_version":"1722239345"}'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errmsg": "","errcode": 0}
异常响应示例
{"errcode": 40004,"errmsg": "access token is expired"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配等
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10011
上传数据列表超过最大值
检查上传的数据列表是否超过了最大值,请缩小列表长度再进行上传
200
40004
access_token过期
重新生成access_token,重新请求

完成用户世界榜单的累计战绩上报

接口说明

当到达截榜时间且有线上生效的世界榜单版本时,在完成用户世界榜单的累计战绩上报后,调用本接口,标记本次截榜时间内的世界榜单累计战绩完成了上报。

使用限制

小玩法app_id纬度,qps限流配置为 5/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
示例
描述
app_id
String
tt411d37a0dexxxxx
小玩法app_id
is_online_version
Bool
FALSE
是否是线上版本,默认为false,为false代表测试数据
world_rank_version
String
test-01
开发者指定已经上传完成的榜单版本
complete_time
Int64
1722239345
上传完成时间,秒级时间戳,默认为当前接口请求时间

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/world_rank/complete_upload_user_result' \ --header 'content-type: application/json' \ --header 'X-Token: 0801121846735352506a356a6' \ --data '{"app_id":"tt411d37a0dxxxxx","world_rank_version":"1722239345","is_online_version":false,"complete_time":1722239345}'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述,非0时,返回具体的错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errcode": 0,"errmsg": ""}
异常响应示例
{"errcode": 40004,"errmsg": "access token is expired"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配等
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10011
未找到对应世界生效版本信息
未找到对应的世界生效版本请先上传世界生效版本
200
40004
access_token过期
重新生成access_token,重新请求

同步对局状态

接口说明

开发者在对局开始时调用,同步对局开始事件;在对局结束时再次调用,同步对局结束事件。

使用限制

小玩法app_id纬度,qps限流配置为 100/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
描述
anchor_open_id
String
主播的open_id
app_id
String
小玩法app_id
room_id
String
房间Id
round_id
Int64
对局Id,同一个直播间room_id下,round_id需要是递增的,建议使用开始对局时的时间戳
start_time
Int64
本局开始时间,秒级时间戳
end_time
Int64
本局结束时间,秒级时间戳。
同步的对局状态为对局结束时,该字段必传。
status
Int
当前房间的游戏对局状态(1=已开始、2=已结束)
group_result_list
[Array Item]
对局结束时,阵型的结果数据
同步的对局状态为[已结束]时,该字段必传。
group_id
String
阵营id,如:red
result
Int
对局结果(1=胜利、2=失败、3=平局)

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/round/sync_status' \ --header 'content-type: application/json' \ --header 'X-Token: 0801121846735352506a356a6' \ --data '{ "round_id": 23, "room_id": "78273162632", "app_id": "tt411d37a0dxxxxx", "anchor_open_id": "UhJKbtCg3N", "start_time": 1722239345, "end_time": 1722239345, "status": 2, "group_result_list": [ { "group_id": "test-01", "result": 1 } ] }'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errmsg": "","errcode": 0}
异常响应示例
{"errcode": 40004,"errmsg": "access token is expired"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10011
对局状态不正确
请检查对局状态是否正确、同步对局结束状态结束时间:end_time必传
200
10037
请求并发调用拦截
同一个app_id、room_id维度的请勿并发调用设置对局状态,
200
4014015
未找到对局开始信息
同步对局结束状态时,未找到对局开始状态信息,请先上传对局开始状态
200
40004
access_token过期
重新生成access_token,重新请求

上报用户对局数据

接口说明

对局结束后,上报用户对局数据,分批次上报,单批次最多上报50个用户对局数据。
本接口和【上报对局榜单列表】接口逻辑是不一样的。
    【上报对局榜单列表】接口是一次性上传排好序的榜单Top 150的用户数据,数据直接展示在小摇杆的「对局榜」的榜单中,平台不做特殊处理,直接展示;底层是以room_id + round_id为维度存储,room_id + round_id维度重复上报,是覆盖写的逻辑;
    本接口是上传所有参与本局玩法并且有战绩的用户数据,批量上报,底层是以用户id+room_id+round_id为维度存储,用户id+room_id+round_id维度重复上报,是覆盖写的逻辑;
【上报对局榜单列表】接口上传了榜单Top 150的用户数据
【上报用户对局数据】接口依然需要再次上报Top 150的用户数据,同时也用于上报Top 150 以外的用户数据。

使用限制

小玩法app_id纬度,qps限流配置为 100/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
描述
anchor_open_id
String
主播的open_id
app_id
String
小玩法app_id
room_id
String
房间room_id
round_id
Int64
对局Id
user_list
[Array Item]
用户对局数据列表
open_id
String
用户open_id
rank
Int64
用户排名,从1开始
超过1000的,可以固定传递1000,抖音端会展示为 "999+"
round_result
Int
对局结果(1=胜利、2=失败、3=平局)
score
Int64
核心数值,用户排名的依据
winning_points
Int64
用户的胜点,如果没有胜点记录传0
winning_streak_count
Int64
用户的连胜次数,如果没有连胜记录传0
group_id
String
阵营Id,比如 red/blue

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/round/upload_user_result' \ --header 'content-type: application/json' \ --header 'X-Token: 0801121846735352506a356a6' \ --data '{"anchor_open_id":"R31PlZy6fL","room_id":"1003434343","user_list":[{"rank":12,"score":322,"winning_streak_count":1232,"winning_points":4223,"round_result":1,"open_id":"i4WwTDWUGP", "group_id":"test-01"}],"app_id":"tt411d37a0dxxxxx","round_id":213}'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errcode": 0,"errmsg": ""}
异常响应示例
{"errcode": 40001,"errmsg": "request params are invalid"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配、同步对局结束事件时,是否参数有漏传的情况
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10011
用户对局信息不存在
请检查是否同步过对局状态信息
200
40004
access_token过期
重新生成access_token

上报对局榜单列表

接口说明

对局结束后,上报对局榜单列表,榜单列表是指Top 150 的用户数据。如果接口调用的列表长度为 20,则表示榜单列表只展示Top 20的用户数据。
当对局结束后,调用一次,一次性上报对局榜单Top 150,如果调用第二次,第一次的数据会被覆盖,因为底层是以room_id + round_id为维度存储,room_id + round_id维度重复调用上报,是覆盖写的逻辑;

使用限制

小玩法app_id纬度,qps限流配置为 100/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
描述
anchor_open_id
String
主播的open_id
app_id
String
小玩法app_id
room_id
String
房间Id
round_id
Int64
对局Id
rank_list
[Array Item]
对局榜单列表
open_id
String
用户open_id
rank
Int64
用户排名,从1开始
round_result
Int
对局结果(1=胜利、2=失败、3=平局)
score
Int64
核心数值,用户排名的依据
winning_points
Int64
用户的胜点记录,如果没有胜点记录传0
winning_streak_count
Int64
用户的连胜次数,如果没有连胜记录传0
group_id
String
阵营Id,比如 red/blue

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/round/upload_rank_list' \ --header 'content-type: application/json' \ --header 'X-Token: 0801121846735352506a356a6' \ --data '{"app_id":"tt411d37a0dxxxxx","round_id":12,"anchor_open_id":"a7Co8Q3M2v","room_id":"7867864325642","rank_list":[{"rank":12,"score":212,"winning_streak_count":21312,"winning_points":2132,"round_result":1,"open_id":"B0AIsWiHa7","group_id":"red"}]}'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errcode": 0,"errmsg": ""}
异常响应示例
{"errcode": 40001,"errmsg": "request params are invalid"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10011
榜单排名有误
请检查上传的榜单排名是否为负数、榜单积分顺序是否有误(前一个排名积分需要大于后一个排名积分)
200
40004
access_token过期
重新生成access_token

完成用户对局数据上报

接口说明

当完成用户对局数据上报后,调用本接口,标记对局数据上报已完成,小摇杆的「本局榜」将展示本局榜单数据。
未标记完成,本轮对局数据在小摇杆的「本局榜」中不展示。

使用限制

小玩法app_id纬度,qps限流配置为 100/s。

基本信息

请求头

名称
字段类型
是否必填
描述
content-type
String
固定值"application/json"
X-Token
String

请求参数

    Body
名称
字段类型
是否必填
示例
描述
anchor_open_id
String
xxxxx
主播的open_id
app_id
String
tt411d37a0dxxxxx
小玩法app_id
room_id
String
7827382738223
房间room_id
round_id
Int64
12
对局id
complete_time
Int64
1722239345
上传完成时间,由开发者传,秒级时间戳。默认为当前接口请求时间

请求示例

curl --location --request POST 'https://webcast.bytedance.com/api/gaming_con/round/complete_upload_user_result' \ --header 'content-type: application/json' \ --header 'X-Token: 0801121846735352506a356a6' \ --data '{"complete_time":1722239345,"app_id":"tt411d37a0dxxxxx","round_id":1232,"anchor_open_id":"a84NH6Okrb","room_id":"7827382738223"}'

响应参数

    Body
名称
字段类型
是否必填
描述
errmsg
String
错误描述
errcode
Int64
错误码,0代表成功

响应示例

正常响应示例
{"errcode": 0,"errmsg": ""}
异常响应示例
{"errcode": 40004,"errmsg": "access token is expired"}

错误码

http状态码
错误码
错误码描述
排查建议
200
40001
参数错误
请求体中的必传参数是否都上传、请求的小玩法app_id是否与请求时access_token相匹配
200
4014034
请求过于频繁
接口有频控限制,建议降低请求的并发量
200
10037
请求并发调用拦截
同一个app_id、room_id、round_id维度同时只允许一个请求完成用户对局榜单的上报,请勿并发调用
200
4014015
未找到对局信息
请先同步对局状态信息
200
40004
access_token过期
重新生成access_token

四、FAQ

Q:【上传世界榜单列表数据】world_rank/upload_rank_list 和 【上报用户世界榜单的累计战绩】world_rank/upload_user_result 接口区别是什么?为什么要上传两次?

回答:
    1.第 1 部分 和 第 3 部分是榜单区域,目前限制榜单长度最多展示Top 150的用户数据,当然也可以低于 150,取决于上报的榜单列表长度。
    2.第 2 部分 和 第 4 部分是用户的个人数据区域;
个人数据区域」 和 「榜单区域」 的数据取数逻辑是 不一样的。
    个人数据区域」
    第 2 部分:直接取自【上报用户对局数据】接口上报的用户数据。【上报用户对局数据】接口批量上报,底层是以用户id+room_id+round_id为维度存储,存储对应用户的对局数据用户id+room_id+round_id维度重复上报,是覆盖写的逻辑;
    第 4 部分:直接取自【上报用户世界榜单的累计战绩】接口上报的用户数据。【上报用户世界榜单的累计战绩】接口批量上报,底层是以用户id+榜单版本world_rank_version为维度存储,存储对应用户的世界战绩数据,用户id+榜单版本world_rank_version维度重复上报,是覆盖写的逻辑;
    「榜单区域」
    第 1 部分:直接取自【上报对局榜单列表】接口上报的榜单Top 150。【上报对局榜单列表】接口是一次性上传排好序的榜单Top 150的用户数据,数据直接展示在小摇杆的「对局榜」的榜单中,平台不做特殊处理,直接展示;底层是以room_id + round_id为维度存储,直接存储对局榜单列表room_id + round_id维度重复上报,是覆盖写的逻辑;
    第 3 部分:直接取自【上传世界榜单列表数据】接口上报的榜单Top 150。【上传世界榜单列表数据】接口是一次性上传排好序的榜单Top 150的用户数据,数据直接展示在小摇杆的「世界榜」的榜单中,平台不做特殊处理,直接展示;底层是以榜单版本world_rank_version为维度存储,直接存储世界榜单列表,榜单版本world_rank_version维度重复上报,是覆盖写的逻辑;
    比如:世界榜单更新逻辑是,每1分钟更新一次
    8:00:调用【上传世界榜单列表数据】接口一次,一次性上报当前时刻的世界榜单Top 150;
    8:01:调用【上传世界榜单列表数据】接口一次,一次性上报当前时刻的世界榜单Top 150,8:00上报的数据,将被8:01这次上报的覆盖;

Q:【设置当前生效的世界榜单版本】接口、【上传世界榜单列表数据】接口、【上报用户世界榜单的累计战绩】接口和【完成用户世界榜单的累计战绩上报】接口,调用时机是什么,world_rank_version该怎么传递 ?

回答:
比如:世界榜是月榜,每月1号0点更新
    1.8.1 0点
    a.调用 【设置当前生效的世界榜单版本】接口,设置生效的版本是 world_rank_version=month_8
    b.小摇杆的「世界榜」的榜单数据将展示world_rank_version=month_8的数据
    2.8.1 0点 - 8.31 23点期间
    a.定时调用【上传世界榜单列表数据】更新榜单Top 150每次调用 world_rank_version都是month_8
    b.定时调用【上报用户世界榜单的累计战绩】接口,定时更新用户战绩数据。每次调用 world_rank_version都是month_8
    c.小摇杆的「世界榜」的榜单数据展示world_rank_version=month_8的数据
    3.9.1 0点
    a.调用【完成用户世界榜单的累计战绩上报】,传递world_rank_version=month_8,标记这个版本的数据已经上传完成。
    b.调用 【设置当前生效的世界榜单版本】接口,设置新的生效的版本是world_rank_version=month_9,小摇杆的「世界榜」的榜单数据将展示world_rank_version=month_9的数据

Q:【上传世界榜单列表数据】接口已经上传了Top 150的用户数据,【上报用户世界榜单的累计战绩】接口是否需要再重复上传Top 150的用户数据

回答:需要的。

Q:【上报对局榜单列表】接口已经上传了Top 150的用户数据,【上报用户对局数据】接口是否需要再重复上传Top 150的用户数据

回答:需要的。

Q:【上报用户世界榜单的累计战绩】接口需要上传小玩法的所有玩家战绩数据,存在较大的系统瓶颈问题,如何处理?

回答:如果小玩法的玩家数量非常大,所有玩家的战绩都上报,存在较大的系统瓶颈问题,可以只上报大于 x 积分的用户数据,低于 x 积分的用户数据不上报。x 积分由开发者自定义。

Q:【上报用户世界榜单的累计战绩】接口,请求时机是什么时候?有什么官方建议?

回答:【上报用户世界榜单的累计战绩】接口,可以在用户的战绩数据发生变化时触发上报。建议在用户参与的对局结束后,累计用户在当前世界榜单统计周期内的所有战绩数据,进行上报;
另外为了保证前1000 名用户数据是准实时的,可以定时上报前 1000 名的用户数据,比如:可以每 1 分钟固定上报前 1000 名的用户数据。

Q:【上报用户世界榜单的累计战绩】接口的rank排名字段是否需要传递,如何传递,如果有100万的玩家,也需要准确的实时排名吗?

回答:需要传递,rank排名超过1000的用户,可以固定传递1000,抖音端会展示为 "999+";另外为了保证前1000 名用户数据是准实时的,可以定时上报前 1000 名的用户数据,比如:可以每 1 分钟固定上报前 1000 名的用户数据。

Q:【同步对局状态】的round_id如何生成,有什么限制?

回答:同一个直播间room_id下,round_id需要是递增的,建议使用开始对局时的时间戳。

Q:【完成用户对局数据上报】有什么作用,不调用会产生什么影响?

回答:该接口用于标记对局数据上报已完成,小摇杆的「本局榜」将展示本局榜单数据。如果未标记完成,本轮对局数据在小摇杆的「本局榜」中不展示。

Q:【上报用户世界榜单的累计战绩】接口上报的用户数据,是否会影响【上传世界榜单列表数据】接口上报的Top 150 ?

回答:不会。
比如:
    【上传世界榜单列表数据】接口上报的Top 150,Top 1是用户A,score=10000,此时用户B不在Top 150中;
    用户B开始深度参与玩法,score积分暴涨;
    【上报用户世界榜单的累计战绩】接口上报用户B(score=20000),用户B不会在榜单列表中展示,不会成为Top1;
    开发者需要重新调用【上传世界榜单列表数据】接口,上报最新的Top 150,包含用户B;此时用户B才会在榜单中展示;
由于【上传世界榜单列表数据】接口的调用时机和【上报用户世界榜单的累计战绩】接口调用时机不同,用户个人战绩数据和世界榜单Top 150 的用户战绩数据存在短时间差异,即可能存在用户个人战绩数据比上榜的用户数据还大,但是未上榜的场景。但是榜单数据在统计周期内是动态变化的,统计周期结束,用户个人战绩数据和榜单列表数据会最终一致。

Q:世界榜单接口全部调用完成,但是玩法直播间的小摇杆【我的面板】还是不可见榜单入口?

回答:
    如果进入玩法直播间的观众是调试成员的话,需要将世界榜单接口的参数:is_online_version = false 传递,这样调试成员才能查询到自己的榜单数据,并且上报的世界榜单数据需要包括调试成员的数据才会可见
    如果进入玩法直播间的观众不是调试成员,是正式用户的话,将世界榜单接口的参数:is_online_version = true 传递,这样正式用户才能查询到自己的榜单数据,并且上报的世界榜单数据需要包括正式用户的数据才会可见