ユニバーサル Windows プラットフォームと PlayFab を統合する
このチュートリアルでは、PlayFab と ユニバーサル Windows プラットフォーム (UWP) の統合に関する 3 つのキー ポイントを紹介します。
注意
ユニバーサル Windows プラットフォームと PlayFab の統合方法を説明するために、サンプル コードで [GitHub repository](https://github.com/PlayFab/UWPExample)
を作成しました。
ユニバーサル Windows プラットフォーム (UWP) と PlayFab の統合は非常に簡単です。 考慮が必要なことは 3 つしかありません。
- Windows Hello アカウントを PlayFab アカウントにリンクする。
- Windows Hello でプレイヤーをログインする。
- Windows ストアでの購入を検証する。
これら 3 つのトピックを順に見ていきましょう。
Windows Hello アカウントを PlayFab アカウントにリンクする
Windows Hello アカウントを PlayFab アカウントにリンクするには 2 つの方法があります。
- Windows Hello の資格情報を使用して新しい PlayFab アカウントを作成するか、
- Windows Hello の資格情報を既存の PlayFab アカウントにリンクします。
どちらを使用するかは、Windows Hello がプライマリ認証であるかどうかによって異なります。
Windows の資格情報で新しいアカウントを作成する
このプロセスを開始する前に、Windows でユーザーにユーザー名を要求する必要があります。
その後、以下の手順に従います。
- KeyCredentialManager.RequestCreateAsync を呼び出して、このユーザーの新しい公開キーを生成します。
- CryptographicBuffer.EncodeToBase64String を呼び出して、上記の IBuffer を文字列に変換します。
- 以下の必要なパラメータで
PlayFabClientAPI.RegisterWithWindowsHello
を呼び出します。- Windows ユーザー名。
- 上記の Base 64 暗号化公開キー。
- 登録が成功したことを想定すると、プレイヤーはログインされています。 トークンを取得して、プレイヤーをその他すべての PlayFab API に認証するために使用できます。
- また、HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha256) を使用してハッシュ プロバイダーを作成し、hashProvider.HashData(publicKey) を呼び出して公開キーをハッシュできるようになりました。
- ハッシュされた公開キーを Base 64 暗号化文字列 (CryptographicBuffer.EncodeToBase64String(publicKeyHash)) に変換し、この文字列とユーザー名をアプリケーション設定に保存します。 (ApplicationData.Current.LocalSettings.Values["publicKeyHint"])。 この公開キーのヒントは、再度ログインする際に使用します。
- やはりログインを簡単にするために、ユーザー名もユーザーのローカル設定に保存することをお勧めします。
Windows の資格情報を既存の PlayFab アカウントにリンクする
Windows の資格情報を既存の PlayFab アカウントにリンクするプロセスはよく似ています。 相違点は以下のとおりです。
- まず、すでに PlayFab アカウントにログインしている必要があります。 通常これは匿名で、保護されていないデバイス ID で行われます。
- 次に、前のセクションの手順に従いますが、
RegisterWithWindowsHello
の代わりにLinkWindowsHello
を使用します。 - これで、ユーザーは今後 Windows の資格情報でログインし、PlayFab アカウントにアクセスし、アカウントを復旧できるようになりました。
Windows Hello でプレイヤーをログインする
Windows Hello の資格情報と PlayFab アカウントをリンクしたら、これらの資格情報を使用してログインできます。 公開キーのヒントと Windows ユーザー名が必要です。
手順は次のとおりです。
-
PlayFabClientAPI.GetWindowsHelloChallengeAsync
を呼び出し、署名チャレンジを作成します。 -
CryptographicBuffer.DecodeFromBase64String を呼び出し、
KeyCredentialManager
の IBuffer を作成します。 -
var retrieveResult = await
KeyCredentialManager.OpenAsync(userId) を呼び出し、キー署名サービスを作成します。 - ユーザー
var userCredential = retrieveResult.Credential
に対する資格情報を取得します。 - await userCredential.RequestSignAsync(challengeBuffer) を呼び出し、Windows でユーザーがこのユーザーに対して、サーバーのチャレンジを署名することを要求します。
- 最後に、
PlayFabClientAPI.LoginWithWindowsHello
を呼び出してプロセスを完了し、プレイヤーをログインします。 - ログインが成功したと想定すると、プレイヤーは現在ログインされています。 トークンを取得して、プレイヤーをその他すべての PlayFab API に認証するために使用できます。
Windows ストアで購入する
Windows ストアでの購入は、iOS または Android での購入プロセスと似ています。 2 つの段階があります。
- まずストアを設定します。
- 次に購入します。
ストアを設定する
Microsoft は、このプロセスを説明するいくつかの説明書を公開しています。 例:
PlayFab カタログで、同じ製品 ID を使用して一致するアイテムを設定する必要があります。
購入する
ストアでアイテムを設定したら、アプリでアプリ内購入を有効にできます。
- アプリケーションで購入し、必ず領収書をリクエストします。
- UWP でのアプリ内購入を行う の説明書でプロセスが説明されています。
- 領収書を取得できます。
- 領収書の詳細はこちらをご覧ください。
- PlayFabClientAPI.ValidateWindowsStoreReceipt を呼び出し、領収書を検証します。 これにより、プレイヤーの PlayFab のインベントリに購入したばかりのアイテムが自動的に付与されます。
その他の質問
さらに質問がある場合は、フォーラム に投稿してください。
また、ゲームとユニバーサル Windows プラットフォームの統合についてフィードバックがあれば、ぜひお聞かせください。