Hi,
I am actually develloping a video game and i try to implement the multplayer + save data
I decided to use photon to create room and it worked well until i tried to implement login system with play fab.
I followed some tutorials, forum and read docs but im actually stuck with an error that i can't resolve.
This is the error in unity : https://B1CBC.playfablogic.com/webhook/1/prod/{secretkey}/RoomCreated? : Error response ResultCode='2' Message='User not found'.
And this is my code :
using System.Collections; using System.Collections.Generic; using System.Net.Mime; using Photon.Pun; using Photon.Realtime; using PlayFab; using PlayFab.ClientModels; using PlayFab.PfEditor.EditorModels; using TMPro; using UnityEditor.PackageManager.Requests; using UnityEngine; using UnityEngine.UI; using LoginResult = PlayFab.ClientModels.LoginResult; using PlayFabError = PlayFab.PlayFabError; public class LoginRegister : MonoBehaviour { public TextMeshProUGUI messagetext; public TextMeshProUGUI emailField; public TextMeshProUGUI passwordField; public TextMeshProUGUI usernameField; private string _playFabPlayerIdCache; public void RegisterButton() { if (passwordField.text.Length < 6) { messagetext.text = "Password too short !"; return; } var request = new RegisterPlayFabUserRequest { //Username = usernameField.text, Email = emailField.text, Password = passwordField.text, RequireBothUsernameAndEmail = false }; PlayFabClientAPI.RegisterPlayFabUser(request,OnRegisterSucces,OnError); } void OnRegisterSucces(RegisterPlayFabUserResult result) { messagetext.text = "Status : Registered !"; LoginButton(); } void OnError(PlayFabError result) { messagetext.text = "Status : " + result.ErrorMessage; } public void LoginButton() { var request = new LoginWithEmailAddressRequest { Email = emailField.text, Password = passwordField.text, }; PlayFabClientAPI.LoginWithEmailAddress(request,RequestPhotonToken,OnError); } void RequestPhotonToken(LoginResult result) { messagetext.text = "Status : PlayFab authenticated. Requesting photon token..."; _playFabPlayerIdCache = result.PlayFabId; PlayFabClientAPI.GetPhotonAuthenticationToken(new GetPhotonAuthenticationTokenRequest { PhotonApplicationId = "6f6b8d03-de23-4c5d-9099-de2e8f63fda7" }, AuthenticateWithPhoton, OnError); } void AuthenticateWithPhoton(GetPhotonAuthenticationTokenResult result) { messagetext.text = "Status : Photon token acquired! Authentication complete."; //We set AuthType to custom, meaning we bring our own, PlayFab authentication procedure. var customAuth = new AuthenticationValues { AuthType = CustomAuthenticationType.Custom }; //We add "username" parameter. Do not let it confuse you: PlayFab is expecting this parameter to contain player PlayFab ID (!) and not username. customAuth.AddAuthParameter("username", _playFabPlayerIdCache); // expected by PlayFab custom auth service //We add "token" parameter. PlayFab expects it to contain Photon Authentication Token issues to your during previous step. customAuth.AddAuthParameter("token", result.PhotonCustomAuthenticationToken); //We finally tell Photon to use this authentication parameters throughout the entire application. PhotonNetwork.AuthValues = customAuth; Debug.Log(result); } public void ResetPassword() { var request = new SendAccountRecoveryEmailRequest { Email = emailField.text, TitleId = "B1CBC" }; PlayFabClientAPI.SendAccountRecoveryEmail(request,OnPasswordReset,OnError); } void OnPasswordReset(SendAccountRecoveryEmailResult result) { messagetext.text = "Status : Recovery email sent !"; } }
If someone have an idea to resolve this, i would be interested. Thx
,Hi,
I am actually creating a video game and implementing the multiplayer + save player state
I already use photon to create and join room and i waant to use playfab to save player's data.
I followed some tutorials and looked some forum / docs but i actually have an error and i dont find any solution
This is the error on unity : Failed to load state from https://B1CBC.playfablogic.com/webhook/1/prod/{secret key}/RoomCreated? : Error response ResultCode='2' Message='User not found'.
And the code :
using System.Collections; using System.Collections.Generic; using System.Net.Mime; using Photon.Pun; using Photon.Realtime; using PlayFab; using PlayFab.ClientModels; using PlayFab.PfEditor.EditorModels; using TMPro; using UnityEditor.PackageManager.Requests; using UnityEngine; using UnityEngine.UI; using LoginResult = PlayFab.ClientModels.LoginResult; using PlayFabError = PlayFab.PlayFabError; public class LoginRegister : MonoBehaviour { public TextMeshProUGUI messagetext; public TextMeshProUGUI emailField; public TextMeshProUGUI passwordField; public TextMeshProUGUI usernameField; private string _playFabPlayerIdCache; public void RegisterButton() { if (passwordField.text.Length < 6) { messagetext.text = "Password too short !"; return; } var request = new RegisterPlayFabUserRequest { //Username = usernameField.text, Email = emailField.text, Password = passwordField.text, RequireBothUsernameAndEmail = false }; PlayFabClientAPI.RegisterPlayFabUser(request,OnRegisterSucces,OnError); } void OnRegisterSucces(RegisterPlayFabUserResult result) { messagetext.text = "Status : Registered !"; LoginButton(); } void OnError(PlayFabError result) { messagetext.text = "Status : " + result.ErrorMessage; } public void LoginButton() { var request = new LoginWithEmailAddressRequest { Email = emailField.text, Password = passwordField.text, }; PlayFabClientAPI.LoginWithEmailAddress(request,RequestPhotonToken,OnError); } void RequestPhotonToken(LoginResult result) { messagetext.text = "Status : PlayFab authenticated. Requesting photon token..."; _playFabPlayerIdCache = result.PlayFabId; PlayFabClientAPI.GetPhotonAuthenticationToken(new GetPhotonAuthenticationTokenRequest { PhotonApplicationId = "6f6b8d03-de23-4c5d-9099-de2e8f63fda7" }, AuthenticateWithPhoton, OnError); } void AuthenticateWithPhoton(GetPhotonAuthenticationTokenResult result) { messagetext.text = "Status : Photon token acquired! Authentication complete."; //We set AuthType to custom, meaning we bring our own, PlayFab authentication procedure. var customAuth = new AuthenticationValues { AuthType = CustomAuthenticationType.Custom }; //We add "username" parameter. Do not let it confuse you: PlayFab is expecting this parameter to contain player PlayFab ID (!) and not username. customAuth.AddAuthParameter("username", _playFabPlayerIdCache); // expected by PlayFab custom auth service //We add "token" parameter. PlayFab expects it to contain Photon Authentication Token issues to your during previous step. customAuth.AddAuthParameter("token", result.PhotonCustomAuthenticationToken); //We finally tell Photon to use this authentication parameters throughout the entire application. PhotonNetwork.AuthValues = customAuth; Debug.Log(result); } public void ResetPassword() { var request = new SendAccountRecoveryEmailRequest { Email = emailField.text, TitleId = "B1CBC" }; PlayFabClientAPI.SendAccountRecoveryEmail(request,OnPasswordReset,OnError); } void OnPasswordReset(SendAccountRecoveryEmailResult result) { messagetext.text = "Status : Recovery email sent !"; } }
If anyone have a solution , i'm interested thx