- シンプルに呼び出せる API を作成する。
- バックグラウンドで Real-Time Activity (RTA) サービスを使用して最新の情報を作成する。
- 開発者はサービスへの余分な負荷を掛けることなく、Social Manager API を同期的に呼び出すことができる。
機能
Social Manager は以下の機能を提供します。- 簡素化されたソーシャル API
- 最新のソーシャル グラフ
- 表示される情報の詳細度の制御
- XBOX services への呼び出し回数の削減
- これはデータ取得の全体的なレイテンシの削減に直接関係します
- スレッド セーフ
- データを効率的に最新の状態に保つ
主要な概念
ソーシャル グラフ: ソーシャル グラフ はデバイス上のローカル ユーザーに対して作成されます。 これにより、ユーザーのすべてのフレンドに関する情報を最新に保つ構造が作成されます。Windows では、ローカル ユーザーは 1 人だけ持てます。
- フィルター グループ: フィルター グループ はローカル (呼び出し) ユーザーの ソーシャル グラフ を取り、指定されたフィルター パラメーターに基づいて常に最新のユーザー セットを返します。
- リスト グループ: リスト グループ はユーザーのリストを取り、それらのユーザーの常に最新のビューを返します。これらのユーザーはユーザーのフレンド リスト外にいてもかまいません。
API の概要
最も頻繁に使用する主要な API は以下のとおりです。Social Manager にローカル ユーザーを追加する
- フラット C API 関数: XblSocialManagerAddLocalUser
XBOX ソーシャル ユーザー グループ
- フラット C API 関数: XblSocialManagerAddLocalUser
XblSocialManager プレフィックスのドキュメントでも確認できます。
使用方法
フィルターからソーシャル ユーザー グループを作成する
このシナリオでは、ユーザーのフレンドのリストや、ユーザーがお気に入りとしてタグ付けしたフレンドのサブセットなど、フィルターからユーザーのリストを取得します。 フラット 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 前の例は、ユーザーに対して Social Manager を初期化し、そのユーザーのソーシャル ユーザー グループを作成し、最新の状態に保つ方法を示しています。 フィルター オプションは XblPresenceFilter と XblRelationshipFilter の列挙型です。 ゲーム ループ内では、XblSocialManagerDoWork 関数が作成されたすべてのビューを、そのグループ内のユーザーの最新のスナップショットで更新します。 ビュー内のユーザーは、XblSocialManagerUserGroupGetUsers 関数を呼び出すことで取得できます。これは、XSAPI が所有する XblSocialManagerUser オブジェクトの配列であるXblSocialManagerUserPtrArray を返します。
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
Social Manager イベントの使用
Social Manager はイベントの形で何が起きたかを通知します。 これらのイベントを使って、UI を更新したり、その他のロジックを実行したりできます。 フラット 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 ドキュメントを参照してください。
