- 建立簡單易於呼叫的 API。
- 在背景使用即時活動 (RTA) 服務來建立最新的資訊。
- 開發人員可以同步呼叫社交管理員 API,而不會對服務造成任何額外負擔。
功能
社交管理員提供下列功能。- 簡化的社交 API
- 最新的社交關係圖
- 控制所顯示資訊的詳細程度
- 減少對 XBOX 服務的呼叫次數
- 這直接關係到資料擷取整體延遲的降低
- 安全執行緒
- 有效率地讓資料保持最新
核心概念
社交關係圖:系統會為裝置上的本機使用者建立社交關係圖。 這會建立一個結構,讓使用者所有好友的相關資訊保持最新。在 Windows 上,只能有一個本機使用者。
- 篩選群組:篩選群組會取得本機 (呼叫端) 使用者的社交關係圖,並根據指定的篩選參數傳回一組持續保持最新的使用者。
- 清單群組:清單群組會取得使用者清單,並傳回這些使用者持續保持最新的檢視。這些使用者可以位於使用者的好友清單之外。
API 概觀
您最常使用的是下列主要 API。將本機使用者新增至社交管理員
- 平面 C API 函式:XblSocialManagerAddLocalUser
XBOX 社交使用者群組
- 平面 C API 函式:XblSocialManagerAddLocalUser
XblSocialManager 前置詞文件中找到這些 API。
使用方式
從篩選條件建立社交使用者群組
在此案例中,您想要從篩選條件取得使用者清單,例如使用者的好友清單,或使用者標記為最愛的好友子集。 平面 C API- XblPresenceFilter
- XblRelationshipFilter
- XblSocialManagerAddLocalUser
- XblSocialManagerCreateSocialUserGroupFromFilters
- XblSocialManagerDoWork
- XblSocialManagerEvent
傳回的事件
已新增本機使用者:在使用者社交關係圖載入完成時觸發。指出初始化期間是否發生任何錯誤。- 平面 C API:XblSocialManagerEventType
::LocalUserAdded
- 平面 C API:XblSocialManagerEventType
::SocialUserGroupLoaded
- 平面 C API:XblSocialManagerEventType
::UsersAddedToSocialGraph
- XblSocialManagerEventType (平面 C API)
其他詳細資料
平面 C API 上一個範例示範如何為使用者初始化社交管理員、為該使用者建立社交使用者群組,並讓其保持最新。 篩選選項為 XblPresenceFilter 和 XblRelationshipFilter 列舉。 在遊戲迴圈中,XblSocialManagerDoWork 函式會以該群組中使用者的最新快照更新所有已建立的檢視。 您可以呼叫 XblSocialManagerUserGroupGetUsers 函式來取得檢視中的使用者。它會傳回XblSocialManagerUserPtrArray,這是 XSAPI 所擁有之 XblSocialManagerUser 物件的陣列。
XblSocialManagerUser 包含玩家代號、玩家圖片和 URI 等社交資訊。
從清單建立和更新社交使用者群組
在此案例中,您想要取得使用者清單 (例如多人遊戲工作階段中的使用者) 的社交資訊。 平面 C API- XblSocialManagerAddLocalUser
- XblSocialManagerCreateSocialUserGroupFromList
- XblSocialManagerDoWork
- XblSocialManagerEvent
傳回的事件
XblSocialManagerEventType::LocalUserAdded。在使用者社交關係圖載入完成時觸發。指出初始化期間是否發生任何錯誤。
XblSocialManagerEventType::SocialUserGroupLoaded。在建立社交使用者群組,且已將追蹤的使用者新增至社交關係圖時觸發。
XblSocialManagerEventType::UsersAddedToSocialGraph。在載入使用者時觸發。
從清單更新社交使用者群組
您也可以呼叫 XblSocialManagerUpdateSocialUserGroup,變更社交使用者群組中追蹤的使用者清單。 平面 C API傳回的事件
已更新社交使用者群組:在社交使用者群組更新完成時觸發。- C++:
social_user_group_updated - C:XblSocialManagerEventType::SocialUserGroupUpdated
- C++:
users_added_to_social_graph - C:XblSocialManagerEventType::UsersAddedToSocialGraph
- C:XblSocialManagerEventType::UsersRemovedFromSocialGraph
使用社交管理員事件
社交管理員會以事件的形式告訴您發生了什麼事。 您可以使用這些事件來更新 UI 或執行其他邏輯。 平面 C API傳回的事件
XblSocialManagerEventType::LocalUserAdded。在使用者社交關係圖載入完成時觸發。指出初始化期間是否發生任何錯誤。
XblSocialManagerEventType::SocialUserGroupLoaded。在建立社交使用者群組時觸發。
XblSocialManagerEventType::UsersAddedToSocialGraph。在載入使用者時觸發。
XblSocialManagerEventType::UsersRemovedFromSocialGraph。在使用者從社交關係圖中移除時觸發。
XblSocialManagerEventType::PresenceChanged。在社交關係圖中使用者的線上狀態變更時觸發。
XblSocialManagerEventType::ProfilesChanged。在社交關係圖中使用者的個人檔案變更時觸發。
XblSocialManagerEventType::SocialRelationshipsChanged。在本機使用者與社交關係圖中另一位使用者之間的關係變更時觸發。
XblSocialManagerEventType::SocialUserGroupUpdated。在社交使用者群組的更新完成時觸發。
其他詳細資料
此範例示範社交管理員提供的一些額外控制。 社交關係圖是在遊戲迴圈之外初始化,而不是依賴社交使用者群組篩選條件在遊戲迴圈期間提供最新的使用者清單。 接著,遊戲會依賴 XblSocialManagerDoWork 函式所傳回的事件。 事件是 XblSocialManagerEvent 的清單。每個 XblSocialManagerEvent 都包含在上一個畫面期間發生的社交關係圖變更。 例如,XblSocialManagerEventType::ProfilesChanged 和 XblSocialManagerEventType::UsersAddedToSocialGraph。
如需詳細資訊,請參閱 XblSocialManagerEvent API 文件。
