タイトル エンティティを使用した PlayFab へのアクセス
プレイヤーとしてログインして PlayFab 呼び出しを行う方法と同様に、タイトル エンティティとして認証し、それを通じて PlayFab 呼び出しを行うこともできます。 タイトル エンティティは、プレイヤー エンティティでは使用できない特定の関数を使用できます。 これらの関数の多くは、"server" という単語で始まります。その一例が、ServerAddPlayerTag です。
タイトル エンティティ ハンドルの取得には、プレイヤーとしてログインするのと同じ初期化手順があります。 詳細については、Win32 のクイックスタートの記事の "初期化" セクションを参照してください。
注: 現時点では、サーバー関数は SDK の Win32 バージョンでのみ使用できます。
最初の手順で PFServiceConfigHandle を作成した後、PFAuthenticationGetEntityWithSecretKeyAsync を呼び出してタイトル エンティティ ハンドルを取得できます。 エンティティの取得呼び出しが正常に完了すると、PFEntityHandle と共に S_OK が返されます。 このプロセスは、プレイヤーとしてログインする場合と似ています。 PFEntityHandle の戻り値の型は同じですが、この場合、エンティティ ハンドルはプレイヤー エンティティではなくタイトル エンティティを表します。 このエンティティをゲーム サーバーと呼ぶことができます。
PFAuthenticationGetEntityRequest request{};
XAsyncBlock async{};
// Add your own error handling when FAILED(hr) == true
HRESULT hr = PFAuthenticationGetEntityWithSecretKeyAsync(
serviceConfigHandle,
secretKey, // title specific secret key
&request,
&async
);
hr = XAsyncGetStatus(&async, true); // This is doing a blocking wait for completion, but you can use the XAsyncBlock to set a callback instead for async style usage
PFEntityHandle entityHandle;
hr = PFAuthenticationGetEntityWithSecretKeyGetResult(
&async,
&entityHandle
);
ゲーム サーバーが作成されたら、PlayFab バックエンドを呼び出すことができます。 タイトル内の特定のプレイヤーにプレイヤー タグを追加する例を次に示します。
XAsyncBlock async{};
PFSegmentsAddPlayerTagRequest request{};
addSegmentRequest.PlayFabId = "ABCDEF123456";
addSegmentRequest.tagName = "tagName";
HRESULT hr = PFSegmentsServerAddPlayerTagAsync(entityHandle, &request, &async);
hr = XAsyncGetStatus(&async, true);
AddPlayerTag の例と同様に、ゲーム サーバーで使用される関数の多くは、プレイヤー データの取得または変更を伴います。 この関数には、特定のプレイヤーの PlayFab ID が必要です。 接続されているクライアントは PlayFab ID を提供できます。または、サーバーは GetPlayFabIDsFromXboxLiveIDs などの呼び出しを介して PlayFab から直接取得できます。