# 通过 Cloud Code JavaScript 脚本访问 Leaderboards

> Refer to code samples that access Leaderboards with the Cloud Code JavaScript Software Development Kit.

您可以使用 Cloud Code JavaScript Leaderboards SDK 访问 Leaderboards。[Cloud Code SDK 文档门户](https://cloud-code-sdk-documentation.cloud.unity3d.com/leaderboards/v1.1)提供了所有可用方法的相关文档。

以玩家调用 Cloud Code 脚本为例。通过以下脚本，可以提交玩家的分数，检索分数条目（包括排名）并检索排行榜中的最高分。

JavaScript:

```js
const { LeaderboardsApi } = require("@unity-services/leaderboards-1.1");

module.exports = async ({ params, context, logger }) => {
  // Retrieve the playerId and accessToken from the context
  // allows you to ensure requests are scoped to the player
  // who invoked the Cloud Code script.
  const { projectId, playerId, accessToken } = context;

  const { leaderboardId, score } = params;
  // Initializing the LeaderboardsApi using the accessToken
  // ensures the requests are made as the player who invoked the
  // Cloud Code script.
  const leaderboardsApi = new LeaderboardsApi({ accessToken});

  const addScoreResult = await leaderboardsApi.addLeaderboardPlayerScore(projectId, leaderboardId, playerId, { score: score });
  const getScoreResult = await leaderboardsApi.getLeaderboardPlayerScore(projectId, leaderboardId, playerId);
  const getScoresResult = await leaderboardsApi.getLeaderboardScores(projectId, leaderboardId);

  return { addScoreResultStatus: addScoreResult.status, getScoreResult: getScoreResult.data, getScoresResult: getScoresResult.data };
};
```

通过 Cloud Code 也可以对玩家作用域终端进行管理级别的访问。这样，您可以通过一个 Cloud Code 脚本来更新多个玩家的分数或单个玩家（除调用 Cloud Code 脚本的玩家之外）的分数。

JavaScript:

```js
const { LeaderboardsApi } = require("@unity-services/leaderboards-1.1");

module.exports = async ({ params, context, logger }) => {
  const { projectId } = context;
  // The below playerId comes from your input parameters. This can
  // be any player that you wish.
  const { leaderboardId, playerId, score } = params;
  // Initialize the LeaderboardsApi using the context allows
  // for admin-level access to Leaderboards endpoints.
  const leaderboardsApi = new LeaderboardsApi(context);

  const addScoreResult = await leaderboardsApi.addLeaderboardPlayerScore(projectId, leaderboardId, playerId, { score: score });
  const getScoreResult = await leaderboardsApi.getLeaderboardPlayerScore(projectId, leaderboardId, playerId);
  const getScoresResult = await leaderboardsApi.getLeaderboardScores(projectId, leaderboardId);

  return { addScoreResultStatus: addScoreResult.status, getScoreResult: getScoreResult.data, getScoresResult: getScoresResult.data };
};
```

## 其他资源##additional-resources

* [Unity Dashboard（Unity 后台）](https://dashboard.unity3d.com/)
* [Cloud Code 文档](/cloud-code.md)
* [Unity Authentication](/authentication/.md)
