PlayFabでEmailとPasswordを使ってログインする
今回はUnityでのEmailとPasswordを使ったPlayFabへのログイン方法について書きます。
PlayFabの導入部分はこちら
PlayFabのログインについて
PlayFabには様々なログイン方法があります。
ログインの種類 | |
---|---|
LoginWithAndroidDeviceID | AndroidデバイスのIDを仕様してログイン |
LoginWithCustomID | Titleごとに生成した文字列を使用してログイン |
LoginWithEmailAddress | Emailアドレスとパスワードを使用してログイン |
LoginWithFacebook | Facebookのアクセストークンを使用してログイン |
LoginWithFacebookInstantGamesId | FacebookインスタントゲームIDでログイン |
LoginWithGameCenter | iOS Game CenterのIDを使用してログイン |
LoginWithGoogleAccount | Googleアカウントを使用してログイン |
LoginWithIOSDeviceID | iOSのデバイスIDを使用してログイン |
LoginWithKongregate | Kongregateアカウントを使用してログイン |
LoginWithNintendoSwitchDeviceId | Nintendo SwitchのデバイスIDを使用してログイン |
LoginWithPlayFab | PlayFabのアカウントでログイン |
LoginWithSteam | Steamのアカウントでログイン |
LoginWithTwitch | Twitchのアクセストークンを使用してログイン |
LoginWithWindowsHello | WindowsHelloを介して署名しログイン |
LoginWithXbox | Xbox Liveトークンを使用してログイン |
導入方法で利用したログイン方法はLoginWithCustomIDです。
var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true}; PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
導入方法で紹介したコードでは"GettingStartedGuide"という文字列をCustomIdとして指定しログインしていたというわけです。
試しにCustomIdを任意の文字列に変更し、CreateAccountをtrueにして実行すると新しくPlayerが作成されることが確認できるはずです。
Playersの該当Player内、Overviewの中にあるIdentitiesを見ると、正しくCustomIdが任意の文字列でLinkされていることがわかります。
UnityでPlayFabにEmailとPasswordでログインする
Emailでログインする際にはまずPlayFab用のアカウントを作成させる必要があります。 理由としては、LoginWithEmailAddress()だとCreateAccountが反映されずアカウントが作成されないためです。
PlayFabClientAPI.RegisterPlayFabUser()を使用しアカウントを作成、登録します。
using PlayFab; public void PressRegisterButton() { var RegisterData = new RegisterPlayFabUserRequest() { TitleId = "****", Email = "*******@****", Password = "********", Username = "******" }; PlayFabClientAPI.RegisterPlayFabUser(RegisterData, result => { Debug.Log("Congratulations, you made your PlayFab account!"); }, error => Debug.Log(error.GenerateErrorReport())); }
TitleIdにはTitleIdを、Email,Password,Usernameには任意のString型を設定します。
RegisterPlayFabUserRequestには次の項目を設定することができます。
RegisterPlayFabUserRequest | |
---|---|
DisplayName | 対象TitleでのPlayerの表示名(3~25文字) |
登録する際のEmailアドレス | |
EncryptedRequest | Titleの公開RSAキーで暗号かされたBase64でエンコードされたBody |
InfoRequestParameters | ユーザーに返す情報のフラグ |
Password | PlayFabのパスワード(6~100文字) |
PlayerSecret | APIリクエストシグネチャの検証用 |
RequireBothUsernameAndEmail | usernameパラメータとemailパラメータの両方を必要とするかどうかのフラグ |
TitleId* | 該当するTitleID |
Username | PlayFabのアカウントユーザー名(3~20文) |
レスポンスでは次のものが返ってきます。
RegisterPlayFabUserResult | |
---|---|
EntityToken | ログインフラグがtrueの場合、ログインして返ります |
PlayFabId | 新規作成されたアカウントのPlayFabのID |
SessionTicket | 現在のセッションでのPlayerトークン |
SettingForUser | ユーザー固有の設定 |
Username | PlayFabでのユーザー名 |
これで、アカウントの作成ができました。
次にEmailとPasswordでログインする方法を紹介します。
using PlayFab; public void PressLoginButton() { var LoginData = new LoginWithEmailAddressRequest() { TitleId = "****", Email = "********@********", Password = "******", }; PlayFabClientAPI.LoginWithEmailAddress(LoginData, result => { Debug.Log("Congratulations, you made your first successful API call!"); }, error => Debug.Log(error.GenerateErrorReport())); }
RegisterしたTitleId,Email,Passwordを入れてリクエストすることでログインすることができます。