- 创建简单易用的 API。
- 通过在后台使用实时活动 (RTA) 服务来创建最新的信息。
- 开发者可以同步调用 Social Manager API,而不会对服务造成任何额外的压力。
功能
Social Manager 提供以下功能。- 简化的社交 API
- 最新的社交图
- 控制显示信息的详细程度
- 减少对 XBOX 服务的调用次数
- 这与数据获取的总体延迟降低直接相关
- 线程安全
- 高效地保持数据最新
核心概念
社交图:为设备上的本地用户创建社交图。 这将创建一个结构,用于保持用户所有朋友的信息处于最新状态。在 Windows 上,只能有一个本地用户。
- 过滤组:过滤组采用本地(调用)用户的社交图,并根据指定的过滤参数返回持续保持最新的用户集。
- 列表组:列表组采用用户列表并返回这些用户的一致最新视图。这些用户可以在用户的朋友列表之外。
API 概述
您最常使用以下关键 API。将本地用户添加到 Social Manager
- Flat C API 函数:XblSocialManagerAddLocalUser
XBOX 社交用户组
- Flat C API 函数:XblSocialManagerAddLocalUser
XblSocialManager 前缀文档中找到这些 API。
用法
从过滤器创建社交用户组
在此场景中,您想要来自过滤器的用户列表,例如用户的朋友列表或用户标记为收藏的朋友子集。 Flat C API- XblPresenceFilter
- XblRelationshipFilter
- XblSocialManagerAddLocalUser
- XblSocialManagerCreateSocialUserGroupFromFilters
- XblSocialManagerDoWork
- XblSocialManagerEvent
返回的事件
已添加本地用户:在完成用户社交图加载时触发。指示初始化期间是否发生任何错误。- Flat C API:XblSocialManagerEventType
::LocalUserAdded
- Flat C API:XblSocialManagerEventType
::SocialUserGroupLoaded
- Flat C API:XblSocialManagerEventType
::UsersAddedToSocialGraph
- XblSocialManagerEventType(Flat C API)
其他详细信息
Flat C API 前面的示例展示了如何为用户初始化 Social Manager、为该用户创建社交用户组以及保持其最新状态。 过滤选项是 XblPresenceFilter 和 XblRelationshipFilter 枚举。 在游戏循环中,XblSocialManagerDoWork 函数使用该组中用户的最新快照更新所有已创建的视图。 可以通过调用 XblSocialManagerUserGroupGetUsers 函数获取视图中的用户。它返回XblSocialManagerUserPtrArray,即由 XSAPI 拥有的 XblSocialManagerUser 对象数组。
XblSocialManagerUser 包含诸如玩家代号、玩家图片和 URI 等社交信息。
从列表创建和更新社交用户组
在此场景中,您需要用户列表的社交信息,例如多人游戏会话中的用户。 Flat C API- XblSocialManagerAddLocalUser
- XblSocialManagerCreateSocialUserGroupFromList
- XblSocialManagerDoWork
- XblSocialManagerEvent
返回的事件
XblSocialManagerEventType::LocalUserAdded。在完成用户社交图加载时触发。指示初始化期间是否发生任何错误。
XblSocialManagerEventType::SocialUserGroupLoaded。在创建社交用户组并且已将跟踪的用户添加到社交图时触发。
XblSocialManagerEventType::UsersAddedToSocialGraph。在加载用户时触发。
从列表更新社交用户组
您还可以通过调用 XblSocialManagerUpdateSocialUserGroup 来更改社交用户组中跟踪的用户列表。 Flat C API返回的事件
社交用户组已更新:在社交用户组更新完成时触发。- C++:
social_user_group_updated - C:XblSocialManagerEventType::SocialUserGroupUpdated
- C++:
users_added_to_social_graph - C:XblSocialManagerEventType::UsersAddedToSocialGraph
- C:XblSocialManagerEventType::UsersRemovedFromSocialGraph
使用 Social Manager 事件
Social Manager 以事件的形式告诉您发生了什么。 您可以使用这些事件来更新 UI 或执行其他逻辑。 Flat C API返回的事件
XblSocialManagerEventType::LocalUserAdded。在完成用户社交图加载时触发。指示初始化期间是否发生任何错误。
XblSocialManagerEventType::SocialUserGroupLoaded。在创建社交用户组时触发。
XblSocialManagerEventType::UsersAddedToSocialGraph。在加载用户时触发。
XblSocialManagerEventType::UsersRemovedFromSocialGraph。在从社交图中删除用户时触发。
XblSocialManagerEventType::PresenceChanged。当社交图中用户的状态发生变化时触发。
XblSocialManagerEventType::ProfilesChanged。当社交图中用户的个人资料发生变化时触发。
XblSocialManagerEventType::SocialRelationshipsChanged。当本地用户与社交图中另一个用户之间的关系发生变化时触发。
XblSocialManagerEventType::SocialUserGroupUpdated。当社交用户组的更新完成时触发。
其他详细信息
此示例显示了 Social Manager 提供的一些其他控件。 游戏不是依赖社交用户组过滤器在游戏循环期间提供新的用户列表,而是在游戏循环之外初始化社交图。 然后游戏依赖 XblSocialManagerDoWork 函数返回的事件。 Events 是 XblSocialManagerEvent 的列表。每个 XblSocialManagerEvent 都包含最后一帧期间对社交图发生的更改。 例如,XblSocialManagerEventType::ProfilesChanged 和 XblSocialManagerEventType::UsersAddedToSocialGraph。
有关详细信息,请参阅 XblSocialManagerEvent API 文档。
