このページでは、統合の 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 とは同じではありません。
- プレイヤーが
XUserAddAsyncで追加され、XUserHandleを保持している。 - そのプレイヤー用の PlayFab アカウントが、PlayFab TitleId の下に存在する (初回サインイン時に自動プロビジョニング)。
- XBOX と PlayFab のアカウントがリンクされており、タイトルは認証された PlayFab REST/SDK 呼び出し用の有効な資格情報 (Entity ID + PlayFab トークン) を保持している。
プレイヤーを 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 を設定します。
セットアップ
- GDK をインストールします。
- プロジェクトに PlayFab.Services.C Gaming Extension Library を追加します。
- Visual Studio でプロジェクトを開き、[Project] → [Properties] を選択します。
- [Configuration Properties] → [Gaming Desktop] → [General] の下で、[Gaming Extension Libraries] を開き、PlayFab.Services.C を追加します。
XUserAddAsyncを使用してプレイヤーを XBOX アカウントにサインインさせ、返されたXUserHandleを保持します。PFAuthenticationLoginWithXUserAsyncを呼び出します。XUserHandleをuserパラメーターとして渡します。- 初回サインイン時に PlayFab がリンクされたアカウントを自動プロビジョニングするように、
createAccount = TRUEを設定します。
- 結果として返された PlayFab の資格情報 (Entity ID + PlayFab トークン) をセッション用に永続化し、以降のすべての PlayFab 呼び出しで使用します。
PlayFab Party XBOX Live Helper Library
タイトルが使用する 唯一 の PlayFab サービスが PlayFab Party の場合、PlayFab Services SDK をスキップして、GDK 内の PlayFab Party SDK に同梱されている Party XBOX Live Helper Library を介してサインインできます。 フローXUserAddAsyncでプレイヤーを XBOX にサインインさせます。- チャットが最初に開始されたら、
XUserGetIdで XUID を取得します。 - XUID を指定して
PartyXblManager::CreateLocalChatUserを呼び出し、PartyXblLocalChatUserを作成します。 - そのユーザー オブジェクトを指定して
PartyXblManager::LoginToPlayFabを呼び出します。- GDK (コンソールと PC) および XDK では、ヘルパー ライブラリが内部的に必要な XBOX サービス トークンを取得し、プレイヤーの XBOX 資格情報を使用して PlayFab にサインインし、初回サインイン時に PlayFab アカウントを自動作成します。この方法で作成されたアカウントには、電子メールもユーザー名も付いていません。
- GDK 以外/XDK 以外のタイトル (たとえば、GDK なしの PC Win32) では、代わりに
PartyXblTokenAndSignatureRequestedStateChangeを受け取ります。自分で XBOX サービス トークンを取得し、PartyXblManager::CompleteGetTokenAndSignatureRequestを介して返します。
- 成功すると、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)。 - Steam —
LoginWithSteam。 - XBOX / GDK PC —
PFAuthenticationLoginWithXUserAsync(このページ)。
PlayFab economy 経由の Microsoft Store アプリ内購入
Microsoft Store でアプリ内アイテムを販売する GDK タイトルの場合、PlayFab は economy バックエンド として機能し、Microsoft Store が実際のトランザクションを処理します。PlayFab は、エンタイトルメント方式 を使用して Microsoft Store の購入をプレイヤーの PlayFab インベントリに調整します。プレイヤーは、まず XBOX アカウントにサインインしている必要があります。フロー
- プレイヤーは XBOX (
XUserAddAsync) と PlayFab (PFAuthenticationLoginWithXUserAsync) にサインインしています。 - プレイヤーはデバイス上の Microsoft Store でアイテムを購入します。
- タイトルは購入を PlayFab に通知します。
- PlayFab は XBOX トークンを指定して
ConsumeMicrosoftStoreEntitlementsを呼び出し、プレイヤーの PlayFab インベントリを同期して、新しいアイテムを付与します。
Partner Center の前提条件
- XBOX Creators Program または Managed Partner に登録している。
- Partner Center で、XBOX ビジネス パートナー情報と同じパブリッシャー GUID (
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee) でパブリッシャー アイデンティティが構成されている。 - XBOX サービスを使用するためのコンセプト承認を取得している。
PlayFab の Microsoft Store アドオンは、Partner Center の ストア管理型の消費型アイテム をサポートしません。開発者管理型の消費型アイテム (または耐久型アイテム) のみを作成してください。
Partner Center と PlayFab で一致するアイテムを作成する
Partner Center の Product ID と PlayFab の Item ID は、エンタイトルメント同期が機能するために完全に一致している必要があります。- Partner Center → [Add-ons] → [Create a new Consumable (Developer-managed)] (または Durable) を選択します。一意の Product ID (たとえば、
MyItem_001) を入力します。 - 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 と一致する必要があります。 間違い — 同じ ID が複数の Catalog にわたって再利用されている:
正しい — SKU ごとに 1 つの Item ID、Store 間では自由に再利用可能:
その後、Catalog 内の Store は、それら固有のアイテムの任意のサブセットを自由にバンドルできます。
関連項目
- XBOX サービスのアイデンティティ — XUser、MSA、XSTS トークン、サンドボックス スコープ。
- XBOX マルチプレイヤー — マルチプレイヤー トランスポート オプションとしての PlayFab Party。
- Game Chat 2 — PlayFab Party 上に重ねられた Game Chat 2。
- Multiplayer Activity — MPA + PlayFab Party インテグレーション。
- GDK 向け PlayFab Services SDK クイックスタート
- PlayFab の価格
