ユニバーサル Windows プラットフォームを PlayFab と統合する方法を示すサンプル コードを含む GitHub リポジトリ を作成しました。
- Windows Hello アカウントを PlayFab アカウントにリンクする。
- Windows Hello を使用してプレイヤーをログインさせる。
- Windows ストアで行われた購入を検証する。
Windows Hello アカウントを PlayFab アカウントにリンクする
Windows Hello アカウントを PlayFab アカウントにリンクするには、次の 2 つの方法があります:- Windows Hello の資格情報を使用して新しい PlayFab アカウントを作成する。
- 既存の PlayFab アカウントに Windows Hello の資格情報をリンクする。
Windows 資格情報を使用して新しいアカウントを作成する
このプロセスを開始する前に、ユーザーに Windows のユーザー名を尋ねる必要があります。 その後、次の手順に従います:- KeyCredentialManager.RequestCreateAsync を呼び出して、このユーザーの新しい公開キーを生成します。
- CryptographicBuffer.EncodeToBase64String を呼び出して、上記の IBuffer を文字列に変換します。
- 次の必須パラメーターを指定して
PlayFabClientAPI.RegisterWithWindowsHello<!— PlayFabClientAPI.RegisterWithWindowsHello —> を呼び出します:- Windows のユーザー名。
- 上記の Base 64 でエンコードされた公開キー。
- 登録が成功すると、プレイヤーはログインした状態になります。セッション トークンが返されるので、それを使用して他のすべての PlayFab API でプレイヤーを認証できます。
- また、HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256) を使用してハッシュ プロバイダーを作成し、hashProvider.HashData(publicKey) を呼び出して公開キーをハッシュできるようになります。
- ハッシュされた公開キーを Base 64 でエンコードされた文字列に変換し (CryptographicBuffer.EncodeToBase64String(publicKeyHash))、この文字列とユーザー名をアプリケーション設定に保存します。(ApplicationData.Current.LocalSettings.Values[“publicKeyHint”])。この公開キー ヒントは、再度ログインするために使用されます。
- ログインを簡単にするために、ユーザー名もユーザーのローカル設定に保存する必要があります。
既存の PlayFab アカウントに Windows 資格情報をリンクする
既存の PlayFab アカウントに Windows 資格情報をリンクするプロセスも非常によく似ています。違いは次のとおりです:- まず、既に PlayFab アカウントにログインしている必要があります。通常、これはセキュリティで保護されていないデバイス ID を使用して匿名で行われます。
- 次に、前のセクションの手順に従いますが、
RegisterWithWindowsHelloの代わりにLinkWindowsHello<!— LinkWindowsHello —> を使用します。 - これで、ユーザーは今後 Windows 資格情報でログインし、PlayFab アカウントにアクセスしたり、アカウントを回復したりできるようになります。
Windows Hello を使用してプレイヤーをログインさせる
Windows Hello の資格情報を PlayFab アカウントにリンクしたら、その資格情報を使用してログインできます。公開キー ヒントと Windows のユーザー名が必要です。 次の手順に従います:PlayFabClientAPI.GetWindowsHelloChallengeAsync<!— PlayFabClientAPI.GetWindowsHelloChallengeAsync —> を呼び出して、署名チャレンジを作成します。- CryptographicBuffer.DecodeFromBase64String を呼び出して、
KeyCredentialManagerがユーザーに署名させるための IBuffer を作成します。 var retrieveResult = awaitKeyCredentialManager.OpenAsync(userId) を呼び出して、キー署名サービスを作成します。- このユーザーの資格情報を取得します:
var userCredential = retrieveResult.Credential。 - await userCredential.RequestSignAsync(challengeBuffer) を呼び出して、このユーザーに対するサーバーのチャレンジに署名するよう Windows からユーザーに要求させます。
- 最後に、
PlayFabClientAPI.LoginWithWindowsHello<!— PlayFabClientAPI.LoginWithWindowsHello —> を呼び出してプロセスを完了し、プレイヤーをログインさせます。 - ログインが成功すると、プレイヤーはログインした状態になります。セッション トークンが返されるので、それを使用して他のすべての PlayFab API でプレイヤーを認証できます。
Windows ストアで購入を行う
Windows ストアでの購入は、iOS または Android での購入プロセスに似ています。次の 2 つの段階があります:- まず、ストアを設定する。
- 次に、購入を行う。
ストアを設定する
Microsoft は、このプロセスについて説明するドキュメントをいくつか公開しています。例: Windows ストアでのアプリ内購入の設定 また、PlayFab カタログに、同じ製品 ID を持つ対応するアイテムを必ず設定する必要があります。購入を行う
ストアでアイテムを設定したら、アプリでアプリ内購入を有効にできます。- アプリケーションで購入を行い、必ずレシートを要求します。
- このドキュメントでプロセスについて説明しています: UWP を使用したアプリ内購入。
- レシートが返されます。
- レシートの詳細についてはこちら を参照してください。
- PlayFabClientAPI.ValidateWindowsStoreReceipt を呼び出してレシートを検証します。これにより、プレイヤーが購入したばかりのアイテムが、PlayFab のプレイヤーのインベントリに自動的に付与されます。
