Epic Online Services (EOS) ユーザー アカウント のそれぞれに、そのアカウントを参照するためにサービスが内部で使用する一意の識別子があります。User Info インターフェース は、ユーザーのアカウント識別子と、表示名、国、使用言語などのユーザーに関する情報とを橋渡しします。リモート ユーザーと、ログインしているローカル ユーザーの両方に関してこの情報を取得できます。
ユーザーのプライバシーを保護するために、User Info インターフェースではリモート ユーザーの表示名と一意のアカウント識別子のみを提供します。
User Info インターフェースを使用するには、Epic Account Services (EAS) をアクティブにし、ユーザー同意 を取得して Basic Profile にアクセスする必要があります。EAS は デベロッパー ポータル 上で有効にすることができます。詳細は「Epic のドキュメント」を参照してください。EAS およびユーザー同意がなくても、EOS SDK および User Info インターフェースの初期化を行うことができますが、バックエンド サービスへのすべての User Info インターフェース機能呼び出しは失敗します。
ユーザー情報を取得してキャッシュする
User Info インターフェースにアクセスするには、EOS_HUserInfo
ハンドルが必要です。このハンドルは、Platform インターフェース から EOS_Platform_GetUserInfoInterface
関数を通じて取得できます。このハンドルは、User Info インターフェースの関数がユーザー情報にアクセスするために必要です。
オンライン サービスのサーバーはユーザー情報を保存します。この情報は、ユーザーが自分のアカウントを更新すると通知なしに変更される場合があります。User Info インターフェースは、最新の情報が必要な場合にサーバーにクエリすることで更新可能なローカル キャッシュを自動的に作成します。
アカウント識別子でユーザー情報を取得する
ユーザー情報を処理する最初のステップは、EOS_UserInfo_QueryUserInfoOptions
データ構造体を使用して EOS_UserInfo_QueryUserInfo
を呼び出すことです。これは、最新バージョンのユーザー情報をローカル キャッシュにダウンロードします。EOS_UserInfo_QueryUserInfo
呼び出しを実行するには、EOS_UserInfo_QueryUserInfoOptions
を作成して次のフィールド値で初期化します。
プロパティ | 値 |
---|---|
ApiVersion | EOS_USERINFO_QUERYUSERINFO_API_LATEST |
LocalUserId | ログイン ユーザーの EOS_EpicAccountId 。 |
TargetUserId | 情報を取得する対象のユーザーの EOS_EpicAccountId 。 |
User Info インターフェース ハンドル、EOS_UserInfo_QueryUserInfoOptions
構造体、およびコールバック情報を関数に渡します。EOS_HPlatform
ハンドルがティックしている場合、操作が終了すると、EOS_UserInfo_QueryUserInfo
に指定したコールバックが実行されます。
コールバックが実行されたら、EOS_UserInfo_QueryUserInfoCallbackInfo
構造体の ResultCode
フィールドをチェックして、操作が成功したか、失敗したかを判断できます。成功コードは、SDK によってサーバーから最新のデータがキャッシュされ、いつでもデータを調査できることを示します。
表示名でユーザー情報を取得する
EOS SDK のほとんどの関数はユーザーの一意のアカウント識別子に基づいてユーザーを処理しますが、プレイヤーが知ることができるのはフレンドのアカウント名だけです。EOS_UserInfo_QueryUserInfoByDisplayName
には、表示名とアカウント識別子をマッピングする方法が用意されています。EOS_UserInfo_QueryUserInfoByDisplayNameOptions
データ構造体を使用して EOS_UserInfo_QueryUserInfoByDisplayName
を呼び出し、最新バージョンのユーザー情報を取得してキャッシュします。この関数を呼び出すとき、EOS_UserInfo_QueryUserInfoByDisplayNameOptions
構造体を次のように初期化します。
プロパティ | 値 |
---|---|
ApiVersion | EOS_USERINFO_QUERYUSERINFOBYDISPLAYNAME_API_LATEST |
LocalUserId | ログイン ユーザーの EOS_EpicAccountId 。 |
DisplayName | 情報を取得する対象のユーザーの表示名。 |
User Info インターフェース ハンドル、EOS_UserInfo_QueryUserInfoByDisplayNameOptions
構造体、およびコールバック情報を関数に渡します。EOS_HPlatform
ハンドルがティックしている場合、操作が終了すると、指定したコールバックが実行されます。コールバックが実行されたら、EOS_UserInfo_QueryUserInfoByDisplayNameCallbackInfo
構造体の ResultCode
フィールドをチェックして、操作が成功したか、失敗したかを判断できます。成功すると、SDK によってサーバーから最新のデータがキャッシュされ、いつでもデータを調査できます。
ユーザー情報を調査する
オンライン サービスから特定のユーザーに関する情報を取得したら、EOS_UserInfo_CopyUserInfo
関数を使用してそのデータのコピーをリクエストすることができます。この関数には、次の情報を設定した EOS_UserInfo_CopyUserInfoOptions
構造体が必要です。
プロパティ | 値 |
---|---|
ApiVersion | EOS_USERINFO_COPYUSERINFO_API_LATEST |
LocalUserId | ログイン ユーザーの EOS_EpicAccountId 。 |
TargetUserId | 情報が必要なユーザーの EOS_EpicAccountId 。これは LocalUserId と同一にできる。 |
User Info インターフェース ハンドル、EOS_UserInfo_CopyUserInfoOptions
構造体、ポインタのアドレスを EOS_UserInfo
データ構造体に渡します。キャッシュにターゲット ユーザーに関する情報が含まれている場合、EOS_UserInfo
データ構造体が設定され、関数は EOS_Success
を返します。
この関数は、データのコピーを作成することで、ゲーム コードがアクセスするユーザー情報が User Info インターフェースによって削除されるのを防止します。つまり、コードがそのメモリを所有し、そのメモリの解放を行います。これを行わないと、メモリ リークが発生します。EOS_UserInfo
オブジェクトを EOS_UserInfo_Release
に渡すことで、オブジェクトを解放できます。
非ローカル ユーザーの場合、EOS_UserInfo
構造体に含まれる情報の大半は空です。このようになっているのは、個人を特定できる情報 (PII) が EOS を通じて他のユーザーに提供されないようにするためです。EOS SDK によって設定されることが保証されているのは、DisplayName
フィールドと UserId
フィールドのみです。
名前とニックネームを表示する
他のユーザーに対してニックネームを設定することができます。ユーザーが別のユーザーにニックネームを割り当てると、それは Nickname
に含まれます。ニックネームを作成したユーザーのみが使用できます。ニックネームの割り当てがない場合、Nickname
フィールドは null になります。
ローカル ユーザーは割り当てられたニックネームを個人情報だと考える場合もあるため、ユーザーに配慮してニックネームの複製を避けることを推奨します。
外部のユーザー情報
1.6 では、リンクされたユーザーのデータを取得することができます。インターフェースは、このデータの取得を支援するために、いくつかの API 関数を公開します。ユーザーの EOS_UserInfo
と同様に、以前に EOS_UserInfo_QueryUserInfo
に呼び出しを行っていない限り、ユーザーの EOS_UserInfo_ExternalUserInfo
はキャッシュされず、取得することができます。
EOS_UserInfo_GetExternalUserInfoCount
は、対象ユーザーの取得に使用できる外部ユーザー情報エントリの数を返します。
EOS_UserInfo_CopyExternalUserInfoByIndex
は、対象ユーザーの外部ユーザー情報を任意のインデックスで出力します。
EOS_UserInfo_CopyExternalUserInfoByAccountType
は対象ユーザーの外部ユーザー情報を情報を取得したい外部アカウントの特定のタイプで出力します。1.6 では、外部ユーザー情報に対してサポートされたアカウント タイプは EOS_EAT_PSN
、EOS_EAT_XBL
、EOS_EAT_NINTENDO
、EOS_EAT_STEAM
です。
EOS_UserInfo_CopyExternalUserInfoByAccountId
は対象ユーザーの外部ユーザー情報を外部アカウントのアカウント ID で出力します。
外部ユーザー情報エントリの使用が済んだら、漏洩を防ぐために EOS_UserInfo_ExternalUserInfo_Release
を必ず呼び出してください。