Skip to main content
PlayFab は、ライブ ゲーム向けの Microsoft のバックエンド as a Service です。economy、カタログ、リーダーボード、cloud script、分析、マッチメイキング、PlayFab Party の音声/データ ネットワーキングを提供します。XBOX サービスの上にきれいに重なります。XBOX サービスは プレイヤーに面したアイデンティティ (ゲーマータグ、フレンド、実績、プレゼンス、MPSD セッション) を所有し、PlayFab は バックエンドのライブ サービス データ (インベントリ、通貨、カスタム ユーザー データ、テレメトリ) を所有します。 PlayFab Party、Microsoft Store の アプリ内購入 向けの PlayFab economy、PlayFab リーダーボード、その他任意の PlayFab サービスを使用する GDK タイトルは、プレイヤーを 両方の スタックにサインインさせ、2 つのアイデンティティをリンクしたままにする必要があります。
このページでは、統合の XBOX 側に焦点を当てます。サインインしている XUser に関連付けられた PlayFab アカウントをプロビジョニングする方法と、Microsoft Store のエンタイトルメント フローが PlayFab economy にどのように配線されるかについて説明します。PlayFab の完全な機能面 (Game Manager、カタログ、cloud script、マッチメイキング、Party) については、PlayFab のドキュメント を参照してください。

XBOX と PlayFab のユーザー アカウント

XBOX サービス アカウントと PlayFab アカウントは、2 つの別々のアイデンティティです。
  • XBOX サービス アカウント — プレイヤーに面したもの。プレイヤーの Microsoft アカウント (MSA) が所有します。ゲーマータグ、XUID、フレンド、実績、プレゼンスを持ちます。
  • PlayFab アカウント — 舞台裏のもの。PlayFab TitleId (4〜6 桁の 16 進文字列。PlayFab Game Manager でタイトルを作成する際に割り当てられます) 内の Entity ID で識別されます。XBOX タイトル ID とは同じではありません。
GDK タイトルで任意の PlayFab 機能 (Party 音声チャット、economy、リーダーボード) を使用するには、サインインしているすべての XUser が、PlayFab タイトルのコンテキストでプロビジョニングされたリンク済みの PlayFab アカウントを持っている必要があります。サインイン フローの終わりまでに、次の状態になります。
  • プレイヤーが XUserAddAsync で追加され、XUserHandle を保持している。
  • そのプレイヤー用の PlayFab アカウントが、PlayFab TitleId の下に存在する (初回サインイン時に自動プロビジョニング)。
  • XBOX と PlayFab のアカウントがリンクされており、タイトルは認証された PlayFab REST/SDK 呼び出し用の有効な資格情報 (Entity ID + PlayFab トークン) を保持している。
PlayFab の TitleId は、XBOX タイトル ID とは同じではありません。ゲームごと (またはシャードごと) に PlayFab Game Manager で 1 つの PlayFab タイトルをプロビジョニングし、その TitleId をビルド構成にハードコーディングします。

プレイヤーを PlayFab にサインインさせる

サポートされているサインイン パスは 2 つあります。使用する PlayFab サービスに基づいてどちらかを選択してください。

PlayFab Services SDK

すべてのタイトルに推奨。 GDK 内で Gaming Extension Library (PlayFab.Services.C) として提供されます。economy、リーダーボード、cloud script、マッチメイキング、および Party 以外のもの を使用する任意のタイトルで使用します。

PlayFab Party Xbox Live Helper Library

PlayFab Party が唯一使用する PlayFab サービス であり、XBOX サービスが唯一の認証プロバイダーである場合にのみ使用します。GDK 内の PlayFab Party SDK と一緒に提供されます。

PlayFab Services SDK (推奨)

PlayFab Services SDK は GDK と共に提供され、PFAuthenticationLoginWithXUserAsync を公開します。この関数は XUserHandle を受け取り、1 回の呼び出しでプレイヤーを PlayFab にサインインさせます。初回実行時にリンクされた PlayFab アカウントを自動プロビジョニングするには、createAccount = TRUE を設定します。 セットアップ
  1. GDK をインストールします。
  2. プロジェクトに PlayFab.Services.C Gaming Extension Library を追加します。
    • Visual Studio でプロジェクトを開き、[Project][Properties] を選択します。
    • [Configuration Properties][Gaming Desktop][General] の下で、[Gaming Extension Libraries] を開き、PlayFab.Services.C を追加します。
推奨されるサインイン フロー
  1. XUserAddAsync を使用してプレイヤーを XBOX アカウントにサインインさせ、返された XUserHandle を保持します。
  2. PFAuthenticationLoginWithXUserAsync を呼び出します。
    • XUserHandleuser パラメーターとして渡します。
    • 初回サインイン時に PlayFab がリンクされたアカウントを自動プロビジョニングするように、createAccount = TRUE を設定します。
  3. 結果として返された PlayFab の資格情報 (Entity ID + PlayFab トークン) をセッション用に永続化し、以降のすべての PlayFab 呼び出しで使用します。
完全なウォークスルーについては、GDK 向け PlayFab Services SDK クイックスタート を参照してください。

PlayFab Party XBOX Live Helper Library

タイトルが使用する 唯一 の PlayFab サービスが PlayFab Party の場合、PlayFab Services SDK をスキップして、GDK 内の PlayFab Party SDK に同梱されている Party XBOX Live Helper Library を介してサインインできます。 フロー
  1. XUserAddAsync でプレイヤーを XBOX にサインインさせます。
  2. チャットが最初に開始されたら、XUserGetId で XUID を取得します。
  3. XUID を指定して PartyXblManager::CreateLocalChatUser を呼び出し、PartyXblLocalChatUser を作成します。
  4. そのユーザー オブジェクトを指定して PartyXblManager::LoginToPlayFab を呼び出します。
    • GDK (コンソールと PC) および XDK では、ヘルパー ライブラリが内部的に必要な XBOX サービス トークンを取得し、プレイヤーの XBOX 資格情報を使用して PlayFab にサインインし、初回サインイン時に PlayFab アカウントを自動作成します。この方法で作成されたアカウントには、電子メールもユーザー名も付いていません。
    • GDK 以外/XDK 以外のタイトル (たとえば、GDK なしの PC Win32) では、代わりに PartyXblTokenAndSignatureRequestedStateChange を受け取ります。自分で XBOX サービス トークンを取得し、PartyXblManager::CompleteGetTokenAndSignatureRequest を介して返します。
  5. 成功すると、PlayFab の Entity ID とトークンを含む PartyXblLoginToPlayFabCompletedStateChange を受け取ります。
リモート ユーザーには PartyXblManager::CreateRemoteChatUser を使用してください。リモート ユーザー フローでは認証やトークン交換は必要ありません。

XUser がアイデンティティ ブリッジ

下流のすべて (PlayFab サインイン、MPSD セッション書き込みトークン、S2S 呼び出し、エンタイトルメント クエリ) は、XUserAddAsync から返された XUserHandle から始まります。PlayFab インテグレーションに関連する 2 つの API を次に示します。 サインイン モデル全般 (MSA、XSTS トークン、サンドボックス スコープ) については、XBOX サービスのアイデンティティ を参照してください。

クロスプラットフォーム タイトル

PlayFab は多くのプラットフォーム認証プロバイダーをサポートしています。同じタイトルを iOS、Android、Steam、または PlayStation で出荷する場合、すべてのプレイヤーを XUser 経由でルーティングしようとしないでください。代わりに、プラットフォームのネイティブ PlayFab 認証プロバイダーを使用します。
  • iOS — Apple ID (LoginWithApple)。
  • Android — Google Play Games (LoginWithGoogleAccount)。
  • SteamLoginWithSteam
  • XBOX / GDK PCPFAuthenticationLoginWithXUserAsync (このページ)。
各プラットフォームのサインインは、それぞれ独自の PlayFab アカウントをプロビジョニングし、同じ PlayFab タイトルにリンクします。同じ PlayFab アカウントでプラットフォーム間を移動するプレイヤーは、リンクされたアイデンティティが PlayFab 内でマージされます。 完全なマトリクスについては、プラットフォーム固有の PlayFab 認証 を参照してください。

PlayFab economy 経由の Microsoft Store アプリ内購入

Microsoft Store でアプリ内アイテムを販売する GDK タイトルの場合、PlayFab は economy バックエンド として機能し、Microsoft Store が実際のトランザクションを処理します。PlayFab は、エンタイトルメント方式 を使用して Microsoft Store の購入をプレイヤーの PlayFab インベントリに調整します。プレイヤーは、まず XBOX アカウントにサインインしている必要があります。

フロー

  1. プレイヤーは XBOX (XUserAddAsync) と PlayFab (PFAuthenticationLoginWithXUserAsync) にサインインしています。
  2. プレイヤーはデバイス上の Microsoft Store でアイテムを購入します。
  3. タイトルは購入を PlayFab に通知します。
  4. PlayFab は XBOX トークンを指定して ConsumeMicrosoftStoreEntitlements を呼び出し、プレイヤーの PlayFab インベントリを同期して、新しいアイテムを付与します。
GDK タイトルでは、Microsoft Store PlayFab アドオンと ConsumeMicrosoftStoreEntitlements を使用してください。レガシー XBOX アドオンや ConsumeXboxEntitlements は使用 しないでください (このパスは XDK タイトル専用です)。ユニバーサル Windows プラットフォーム アドオンは非推奨です。

Partner Center の前提条件

  • XBOX Creators Program または Managed Partner に登録している。
  • Partner Center で、XBOX ビジネス パートナー情報と同じパブリッシャー GUID (aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee) でパブリッシャー アイデンティティが構成されている。
  • XBOX サービスを使用するためのコンセプト承認を取得している。
Partner Center の [Game setup → XBOX services] で、[Use full XBOX services feature set (requires concept approval)] または [Use XBOX Creators Program] のいずれかを選択し、タイトルの下にアドオンを作成します。
PlayFab の Microsoft Store アドオンは、Partner Center の ストア管理型の消費型アイテム をサポートしません。開発者管理型の消費型アイテム (または耐久型アイテム) のみを作成してください。

Partner Center と PlayFab で一致するアイテムを作成する

Partner Center の Product ID と PlayFab の Item ID は、エンタイトルメント同期が機能するために完全に一致している必要があります。
  1. Partner Center → [Add-ons][Create a new Consumable (Developer-managed)] (または Durable) を選択します。一意の Product ID (たとえば、MyItem_001) を入力します。
  2. PlayFab Game Manager[Engage][Economy][New item] を選択します。Item ID に同じ文字列 (MyItem_001) を入力します。Partner Center と一致するように Consumable または Durable としてマークし、保存します。

用語リファレンス

Catalog と Store — グローバルで 1 つの Item ID

PlayFab では、タイトルごとに複数の Catalog を定義でき、各 Catalog 内でアイテムを Store にグループ化できます。Microsoft Store のエンタイトルメント同期が機能するには、各 Product ID が PlayFab タイトル内のすべての Catalog バージョンで、ちょうど 1 つの Item ID と一致する必要があります。
同じ Item ID が複数の Catalog に含まれている場合、エンタイトルメント消費は失敗します。指定の PlayFab タイトル内のすべての Catalog 間で、アイテム ID をグローバルに一意に保ってください。
間違い — 同じ ID が複数の Catalog にわたって再利用されている: 正しい — SKU ごとに 1 つの Item ID、Store 間では自由に再利用可能: その後、Catalog 内の Store は、それら固有のアイテムの任意のサブセットを自由にバンドルできます。

関連項目

最終更新日 2026年8月25日