タイトル エンティティを使用した 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 から直接取得できます。

リファレンス

API リファレンス ドキュメント