> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用配置文件实现高级排行榜

> 配置 PlayFab PlayerProfileViewConstraints，以在排行榜和排名结果中获取更丰富的玩家配置文件数据，如头像 URL 和显示名称。

使用 PlayFab 时，你通常使用以下 API 方法构建排行榜：

* [**GetFriendLeaderboard**](xref:titleid.playfabapi.com.client.playerdatamanagement.getfriendleaderboard)
* [**GetFriendLeaderboardAroundPlayer**](xref:titleid.playfabapi.com.client.playerdatamanagement.getfriendleaderboardaroundplayer)
* [**GetLeaderboard**](xref:titleid.playfabapi.com.client.playerdatamanagement.getleaderboard)
* [**GetLeaderboardAroundPlayer**](xref:titleid.playfabapi.com.client.playerdatamanagement.getleaderboardaroundplayer)

结果是一个 [**PlayerLeaderboardEntry**](xref:titleid.playfabapi.com.client.playerdatamanagement.getleaderboard#playerleaderboardentry) 对象列表，其中仅包含关于玩家及其与当前排行榜的关系的基本信息。

但是，PlayFab 还允许你使用 [**PlayerProfileViewConstraints**](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofileviewconstraints)，以获取每个玩家的其他信息。

<Note>
  此示例假定你已经有一些排行榜数据可以使用。请参阅我们的[访问已存档的锦标赛结果](/services/playfab/community/leaderboards/tournaments-leaderboards/accessing-archived-tournament-results)教程，了解生成一些测试数据的方法。
</Note>

## 配置玩家配置文件视图约束

默认情况下，Client API 只能从另一个玩家配置文件获取显示名称。在此示例中，我们将允许*所有*玩家访问关于排行榜中*其他*玩家的其他信息。

导航到你的标题 Game Manager：

1. 选择左侧菜单中的 **Settings** 图标。
2. 选择 **Title settings**
3. 然后选择 **Client Profile Options** 选项卡。
4. 确认已选择 **DisplayName**。
5. 确保已选择 **Avatar URL**。
6. 通过选择 **Save Client Profile Options** 按钮提交更改。

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-settings-client-profile-options.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=409d43f763c204027beb536fe13930a9" alt="Game Manager - Settings - Client Profile Options" width="1280" height="1100" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/game-manager-settings-client-profile-options.png" />

## 测试

上一步允许客户端代码使用 `DisplayName` 和 `AvatarUrl` 配置文件约束。

以下示例演示如何使用提到的任何配置文件数据获取和打印排行榜。请参阅代码注释以获取更多信息。

```csharp theme={null}
private static async Task DoReadLeaderboard()
{
    // Get Leaderboard Request
    var result = await PlayFabClientAPI.GetLeaderboardAsync(new GetLeaderboardRequest()
    {
        // Specify your statistic name here
        StatisticName = "TestScore",
        // Override Player Profile View Constraints and fetch player DisplayName and AvatarUrl
        ProfileConstraints = new PlayerProfileViewConstraints()
        {
            ShowDisplayName = true,
            ShowAvatarUrl = true
        }
    });

    // Start printing the leaderboard
    Console.WriteLine("=== LEADERBOARD ===");

    if (result.Error != null)
    {
        // Handle error if any
        Console.WriteLine(result.Error.GenerateErrorReport());
    }
    else
    {
        // Traverse the leaderboard list
        foreach (var entry in result.Result.Leaderboard)
        {
            // Print regular leaderboard entry information
            Console.WriteLine($"{entry.Position + 1} {entry.PlayFabId} {entry.StatValue}");

            // Additionally print display name and avatar url that comes from player profile
            Console.WriteLine($"    {entry.Profile.DisplayName} | {entry.Profile.AvatarUrl}");
        }
    }
}
```

<Note>
  各个配置文件字段*仅*在客户端使用配置文件约束显式请求时可用。另请注意，如果 Game Manager 中*不*允许某些配置文件约束——而你的客户端请求它们——API 调用将失败，并返回相应的错误。结果将类似于下面提供的示例。
</Note>

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/output-display-leaderboard.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=41856980abb06a765ebfbfeecc3e46c1" alt="Output - Display Leaderboard" width="597" height="372" data-path="images/playfab/community/leaderboards/tournaments-leaderboards/tutorials/output-display-leaderboard.png" />

使用此技术，你可以获取一些配置文件信息，包括其他统计信息值。


## Related topics

- [XR-047 用户配置文件访问](/zh-CN/publishing/certification/xr/xr-047.md)
- [手动分级排行榜](/zh-CN/services/playfab/community/leaderboards/manual-tiers.md)
- [XR-064 可加入的游戏会话和在线游戏](/zh-CN/publishing/certification/xr/xr-064.md)
- [XBOX 认证概览](/zh-CN/publishing/certification/overview.md)
- [PC 和移动游戏的 XBOX 要求测试用例](/zh-CN/publishing/certification/pc-policy-tests.md)
