# LeaderboardManager.submitScores
以 Promise 风格调用:不支持
# 功能描述
批量提交用户排行榜分数。
# 参数
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| scores | Array.<SubmitScoreItem> | 是 | 要提交的排行榜分数列表,一次最多提交5个分数数据(即scores的length不能超过5);score只能是整数,如果传入小数会被取整 | |
| callback | Object | 否 | 接口调用结果回调 |
SubmitScoreItem:
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| leaderboardId | string | 否 | 排行榜ID | |
| score | number | 否 | 排行榜分数,注意与管理后台中该排行榜的数据类型和数据范围一致,否则会提交失败 |

callback:
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| onSuccess | function | 否 | 接口调用成功的回调函数 | |
| onFailure | function | 否 | 接口调用失败的回调函数 |
onSuccess回调返回数据:
Object res:
| 属性名 | 数据类型 | 说明 |
|---|---|---|
| results | Array.<SubmitScoresResultItem> | submitScores成功的回调结果 |
SubmitScoresResultItem:
| 属性名 | 数据类型 | 说明 |
|---|---|---|
| leaderboardId | string | 排行榜 ID |
| openid | string | Open ID,是 TapTap 用户在小游戏中的唯一标识 |
| periodToken | string | 时间周期标识,示例:"1745118000-1745636399" |
| scoreResult | ScoreResult | 分数结果 |
| unionid | string | Union ID,是 TapTap 用户在同一开发者下所有应用中的唯一标识 |
ScoreResult:
| 属性名 | 数据类型 | 说明 |
|---|---|---|
| rawScore | number | 计算了当次提交后的用户分数 |
| newBest | boolean | 与历史记录相比,rawScore是否为最佳分数 |
| scoreDisplay | string | 分数展示文本,如"1999万 战力" |
# 错误
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 500001 | 排行榜 ID 未找到 | 排行榜 ID 不存在 |
| 500002 | 排行榜参数错误 | 排行榜 ID 与游戏不匹配 |
| 500199 | scores数据条数不是[1,5]范围 | scores数据条数不是[1,5]范围,提示接口入参异常,请检查scores的size是不是5条以内 |
# 示例代码
leaderboardId需要改成实际的值,否则会报错。
const scores = [
{ leaderboardId: "leaderboard_1", score: 1000 },
{ leaderboardId: "leaderboard_2", score: 2000 }
];
tapLeaderboard.submitScores({
scores: scores,
callback: {
onSuccess: function(res) {
console.log("submitScores success:", JSON.stringify(res, null, 2));
},
onFailure: function(code, message) {
console.error(`submitScores failed: code=${code}, message=${message}`);
}
}
});
