- 호출할 간단한 API 생성.
- 백그라운드에서 Real-Time Activity(RTA) 서비스를 사용하여 최신 정보 생성.
- 개발자는 서비스에 추가 부담을 주지 않고 Social Manager API를 동기적으로 호출할 수 있습니다.
기능
Social Manager는 다음과 같은 기능을 제공합니다.- 단순화된 소셜 API
- 최신 소셜 그래프
- 표시되는 정보의 상세도 제어
- XBOX services에 대한 호출 수 감소
- 이는 데이터 획득의 전체적인 지연 시간 감소와 직접적으로 연관됩니다
- 스레드 안전
- 데이터를 효율적으로 최신 상태로 유지
핵심 개념
소셜 그래프: 장치의 로컬 사용자에 대해 소셜 그래프가 생성됩니다. 이는 사용자의 모든 친구에 대한 정보를 최신 상태로 유지하는 구조를 만듭니다.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 함수를 호출하여 얻을 수 있습니다. 이 함수는 XSAPI가 소유하는 XblSocialManagerUser 개체의 배열인XblSocialManagerUserPtrArray를 반환합니다.
XblSocialManagerUser는 gamertag, gamerpic, 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 함수가 반환하는 이벤트에 의존합니다. 이벤트는 XblSocialManagerEvent 목록입니다. 각 XblSocialManagerEvent는 마지막 프레임 동안 발생한 소셜 그래프의 변경 사항을 포함합니다. 예를 들면 XblSocialManagerEventType::ProfilesChanged 및 XblSocialManagerEventType::UsersAddedToSocialGraph가 있습니다.
자세한 내용은 XblSocialManagerEvent API 문서를 참조하세요.
