显示来自人脉系统的联系人

本主题介绍使用人脉系统显示联系人的代码流。 以下是一些调用流程场景示例,展示了游戏如何从与人脉相关的服务获取数据。

跨 Xbox Live 的服务仅返回该服务拥有的数据,并仅向用户返回 XUID 引用。 下面是一些示例。

  • 人脉服务仅拥有并返回用户联系人列表上的 XUID 以及一些有关其中每个 XUID 的非常基本的信息(如收藏联系人状态)。
  • 状态服务拥有有关 XUID 的在线状态信息的数据。
  • 排行榜服务拥有 XUID 列表上的排名信息。

若要呈现体验中的人员列表,必须调用多个服务。 这是因为显示名称和玩家代号信息永远不会从 个人资料服务以外的任何服务返回。

服务 API 的常规调用模式是进行一次往返,首先从服务中获取最能对列表进行筛选或排序的 XUID 列表,然后根据需要对其他服务进行同时往返调用,以获取每个每个 XUID 所需的任何其他元数据。 就图像而言,可能需要进行第三次往返调用来从图像 URL 获取图像。

为了减少为获取用户联系人列表相关数据所需的往返调用的次数,在相关服务中引入了联系人名字对象。 此功能允许调用方抽象地向主服务表明它应从人脉服务中获取用户的联系人列表,然后使用该 XUID 集限定返回范围。

返回到本主题顶部。

游戏中的当前用户列表

游戏包含:

游戏中其他用户的随机 XUID 列表。

目标:

为每位其他用户呈现最少量的信息。

要呈现的字段 [拥有服务]:

GameDisplayName [个人资料]

调用流程:

使用 XUID 列表调用 Profile

返回到本主题顶部。

当前用户处于联机状态的联系人列表

游戏包含:

当前用户的 XUID。

目标:

呈现当前用户的联系人列表中联机用户的完整列表。

要呈现的字段 [拥有服务]:

  • 收藏夹指示器 [人脉]
  • 显示图片 [个人资料]
  • GameDisplayName [个人资料]
  • 基本联机状态(绿球)[状态]

调用流程:

  1. 调用 Presence,传入 People 名字对象,以获取每个用户联系人的 XUID 和联机状态。
  2. 并行:
    1. 调用 Profile,传入整个 XUID 列表以获取每个 XUID 的显示名称和图像 URL。 然后,获取每个图像 URL 的图像。
    2. 调用 People,传入 XUID 列表以查明用户是否有收藏的联系人。

返回到本主题顶部。

包含随机用户的全球排行榜

游戏包含:

排行榜的 ID/名称。

目标:

呈现排行榜上每个用户的基本信息。

要呈现的字段 [拥有服务]:

  • 收藏夹指示器 [人脉]
  • GameDisplayName [个人资料]
  • 排名 [排行榜]
  • 分数 [排行榜]

调用流程:

  1. 调用 Leaderboards 获取特定排行榜的 XUID、排名和分数。
  2. 并行:
    • 调用 Profile,传入 XUID 列表以获取每个 XUID 的显示名称和图像 URL。
    • 调用 People,传入 XUID 列表以查明用户是否有收藏的联系人。

返回到本主题顶部。

用户联系人的排行榜

游戏包含:

  • 排行榜的 ID/名称
  • 当前用户的 XUID

目标:

呈现排行榜上每个用户的基本信息。

要呈现的字段 [拥有服务]:

  • 收藏夹指示器 [人脉]
  • GameDisplayName [个人资料]
  • 排名 [排行榜]
  • 分数 [排行榜]

调用流程:

  1. 调用 Leaderboards,传入 People 名字对象,以获取仅限于用户联系人列表的特定排行榜的 XUID、排名和分数。
  2. 并行:
    • 调用 Profile,传入 XUID 列表以获取每个 XUID 的显示名称和图像 URL。
    • 调用 People,传入 XUID 列表以查明用户是否有收藏的联系人。

返回到本主题顶部。