# LeaderBoardManager.submitScores

# 功能描述

批量提交用户排行榜分数。

# 参数

属性 类型 默认值 必填 说明
scores Array.<SubmitScoreItem> 要提交的排行榜分数列表,一次最多提交5个分数数据(即scores的length不能超过5);score只能是整数,如果传入小数会被取整
callback Object 接口调用结果回调

SubmitScoreItem:

属性 类型 默认值 必填 说明
leaderboardId string 排行榜ID
score number 排行榜分数,注意与管理后台中该排行榜的数据类型和数据范围一致,否则会提交失败

配置排行榜分数格式和范围

callback:

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(成功/失败都会执行)

success回调返回数据:

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}`);
    }
  }
});