/// <summary> /// /// </summary> public static void SetPlayerData(Dictionary <string, string> _dataDic, Action _playerDataSetSuccess = null, Action _playerDataSetError = null) { var request = new PlayFab.ClientModels.UpdateUserDataRequest { Data = _dataDic, Permission = PlayFab.ClientModels.UserDataPermission.Public }; PlayFabClientAPI.UpdateUserData(request, _OnSucess => { if (_playerDataSetSuccess != null) { _playerDataSetSuccess(); } }, _OnError => { if (_playerDataSetError != null) { _playerDataSetError(); } Debug.Log("Failed To Update Player Data"); } ); }
void UpdatePlayerData(ItemInstance item) { UpdateUserDataRequest request = new UpdateUserDataRequest(); Dictionary<string, string> playerData = new Dictionary<string,string>(); playerData.Add(item.ItemClass, item.ItemId); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnAddDataSuccess, OnAddDataError); }
////// SAVE USER DATA public static void save_user_data (){ Dictionary<string, string> user_data = new Dictionary<string, string>(); user_data.Add("shipColor", shipColor); user_data.Add("hasGreenShip", hasGreenShip.ToString().ToLower()); user_data.Add("highScore", highScore.ToString()); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = user_data; PlayFabClientAPI.UpdateUserData(request,save_user_data_successful,save_user_data_failed); }
public IEnumerator saveMatch(Match match) { matchList.addMatch(match); UpdateUserDataRequest request = new UpdateUserDataRequest() { Data = new Dictionary<string, string>(){ {"MatchList", JsonUtility.ToJson(matchList)}, } }; yield return saveUserData(request); }
/// <summary> /// 유저의 정보를 저장하기 변경사항이 있으면 Userinfo 클래스를 변경하고 매개변수로 변경된 클래스를 넣어서 호출하면 /// 변경된 클래스가 저장이 된다 /// </summary> /// <param name="info"></param> public void SetData(UserInfo info) { string json = JsonUtility.ToJson(info); var request = new PlayFab.ClientModels.UpdateUserDataRequest() { Data = new Dictionary <string, string>() { { "Info", json }, }, Permission = PlayFab.ClientModels.UserDataPermission.Public //수정가능하게 퍼미션을 퍼블릭으로 }; PlayFabClientAPI.UpdateUserData(request, OnSetdateSuccess, OnSetdataFail); }
public IEnumerator saveDeck(Deck deck) { Player player = Player.getInstance(); deckList = player.DeckList; if (!deckList.Contains(deck)) deckList.Add(deck); UpdateUserDataRequest request = new UpdateUserDataRequest() { Data = new Dictionary<string, string>(){ {"DeckList", JsonUtility.ToJson(deckList)}, } }; yield return saveUserData(request); }
private void SavePlayerState() { if (PlayFabGameBridge.totalKills != totalKillsOld && PlayFabData.AuthKey != null) { // we need to save // first save as a player property (poor man's save game) Debug.Log ("Saving player data..."); UpdateUserDataRequest request = new UpdateUserDataRequest (); request.Data = new Dictionary<string, string> (); request.Data.Add ("TotalKills", PlayFabGameBridge.totalKills.ToString ()); PlayFabClientAPI.UpdateUserData (request, PlayerDataSaved, OnPlayFabError); // also save score as a stat for the leaderboard use... Dictionary<string,int> stats = new Dictionary<string,int> (); stats.Add("score", PlayFabGameBridge.totalKills); storeStats(stats); } totalKillsOld = PlayFabGameBridge.totalKills; }
///ClearUserData() /// <summary> /// Clear all User's data in PlayFab. /// </summary> /// Pre-Condition: Must be signed into a PlayFab account. /// Post-Conidition: The PlayFab account's data will be cleared. public static void ClearUserData() { if (_playFabId == null) return; //PlayFab API call requires a request to update, but with KeysToRemove it will delete data. var UpdateUserDataRequest = new PlayFab.ClientModels.UpdateUserDataRequest() { KeysToRemove = _Key }; //PlayFab API call to update data that will be removed for the PlayFab account. PlayFabClientAPI.UpdateUserData(UpdateUserDataRequest, (result) => { Debug.Log("Data successfully Cleared."); }, (error) => { Debug.Log("Error: ClearUserData()"); Debug.Log(error.ErrorMessage); } ); }
/// UpdateUserData(Dictionary<String, String>) /// <summary> /// Updates User's Data in PlayFab. /// </summary> /// <param name="UserData"></param> /// Pre-Condition: Must be signed into a PlayFab account. /// Post-Condition: The PlayFab account is updated with UserData. public void UpdateUserData(Dictionary<String, String> UserData) { if (_playFabId == null) return; //PlayFab API call requires a request to update. var UpdateUserDataRequest = new PlayFab.ClientModels.UpdateUserDataRequest() { Data = UserData }; //PlayFab API call to update data for the PlayFab account. PlayFabClientAPI.UpdateUserData(UpdateUserDataRequest, (result) => { Debug.Log("Data successfully updated."); }, (error) => { Debug.Log("Error: GetUserData()"); Debug.Log(error.ErrorMessage); } ); }
public IEnumerator savePlayer(Player player) { Debug.Log("Cerating request"); UpdateUserDataRequest request = new UpdateUserDataRequest() { Data = new Dictionary<string, string>(){ {"UserName", player.Username}, {"Currency", player.Currency.ToString()}, {"IsPremium", player.IsPremium.ToString()}, {"PremiumCredit", player.PremiumCredit.ToString() }, {"StoreDeckNameList", JsonUtility.ToJson(player.StoreDeckNameList)}, {"DeckList", JsonUtility.ToJson(player.DeckList)}, } }; Debug.Log("Request is done"); yield return saveUserData(request); }
public void OnPurchaseSucceeded(Purchase purchase) { if (AudioManager.instance.sfxEnabled) this.GetComponent<AudioSource>().Play(); Debug.Log("OnPurchaseSucceeded"); OpenIAB.consumeProduct(purchase); ValidateGooglePlayPurchaseRequest request = new ValidateGooglePlayPurchaseRequest(); request.ReceiptJson = purchase.OriginalJson; request.Signature = purchase.Signature; PlayFabClientAPI.ValidateGooglePlayPurchase(request, OnValidateCompleted, OnValidateError); // calling this before validation? UpdateUserDataRequest dataRequest = new UpdateUserDataRequest(); dataRequest.Data = new Dictionary<string, string>(); dataRequest.Data.Add(GameConstants.boughtSheKey, "true"); dataRequest.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(dataRequest, OnDataUpdateCompleted, OnDataUpdateError); AccountManager.instance.BuyShe(); }
private void UpdatePlayerData() { UpdateUserDataRequest req = new UpdateUserDataRequest(); //AddUserVirtualCurrencyRequest currReq = new AddUserVirtualCurrencyRequest(); //currReq.Amount = PlayFabGameBridge.Instance.userBalance-PlayFabGameBridge.Instance.startUserBalance; Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add("TotalRaces", PlayFabGameBridge.Instance.totalRaces.ToString()); playerData.Add("WonRaces", PlayFabGameBridge.Instance.wonRaces.ToString()); req.Data = playerData; req.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(req, OnUpdateSuccess, OnPlayFabError); //PlayFabClientAPI.curr(currReq, OnUpdateSuccess, OnPlayFabError); Dictionary<string, int> stats = new Dictionary<string, int>(); stats.Add("WonRaces", PlayFabGameBridge.Instance.wonRaces); storeStats(stats); }
public void UserDataApi() { int testCounterValueExpected, testCounterValueActual; var getRequest = new GetUserDataRequest(); PlayFabClientAPI.GetUserData(getRequest, GetUserDataCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.Equals("User Data Received", lastReceivedMessage); int.TryParse(testCounterReturn.Value, out testCounterValueExpected); testCounterValueExpected = (testCounterValueExpected + 1) % 100; // This test is about the expected value changing - but not testing more complicated issues like bounds var updateRequest = new UpdateUserDataRequest(); updateRequest.Data = new Dictionary<string, string>(); updateRequest.Data[TEST_DATA_KEY] = testCounterValueExpected.ToString(); PlayFabClientAPI.UpdateUserData(updateRequest, UpdateUserDataCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.StringEquals("User Data Updated", lastReceivedMessage); getRequest = new GetUserDataRequest(); PlayFabClientAPI.GetUserData(getRequest, GetUserDataCallback, SharedErrorCallback); WaitForApiCalls(); UUnitAssert.StringEquals("User Data Received", lastReceivedMessage); int.TryParse(testCounterReturn.Value, out testCounterValueActual); UUnitAssert.IntEquals(testCounterValueExpected, testCounterValueActual); DateTime timeUpdated = testCounterReturn.LastUpdated; DateTime minTest = DateTime.UtcNow - TimeSpan.FromMinutes(5); DateTime maxTest = DateTime.UtcNow + TimeSpan.FromMinutes(5); UUnitAssert.True(minTest <= timeUpdated && timeUpdated <= maxTest); // UnityEngine.Debug.Log((DateTime.UtcNow - timeUpdated).TotalSeconds); UUnitAssert.True(Math.Abs((DateTime.UtcNow - timeUpdated).TotalMinutes) < 5); // Make sure that this timestamp is recent - This must also account for the difference between local machine time and server time }
//Updates User Data - Used to set room ID for now public static void UpdateUserData(Dictionary<string, string> data) { var request = new UpdateUserDataRequest() { Data = data, Permission = UserDataPermission.Public }; PlayFabClientAPI.UpdateUserData(request, (result) => { Debug.Log("User Data Updated"); }, (error) => { Debug.Log("User Data Can't Updated"); Debug.Log(error.ErrorMessage); Debug.Log(error.ErrorDetails); }); }
public void UserDataApi() { string TEST_KEY = "testCounter"; ClientModels.UserDataRecord testCounter; int testCounterValueExpected, testCounterValueActual; var getRequest = new ClientModels.GetUserDataRequest(); var getDataTask1 = PlayFabClientAPI.GetUserDataAsync(getRequest); getDataTask1.Wait(); UUnitAssert.Null(getDataTask1.Result.Error, "UserData should have been retrieved from Api call"); UUnitAssert.NotNull(getDataTask1.Result.Result, "UserData should have been retrieved from Api call"); UUnitAssert.NotNull(getDataTask1.Result.Result.Data, "UserData should have been retrieved from Api call"); if (!getDataTask1.Result.Result.Data.TryGetValue(TEST_KEY, out testCounter)) { testCounter = new ClientModels.UserDataRecord(); testCounter.Value = "0"; } int.TryParse(testCounter.Value, out testCounterValueExpected); testCounterValueExpected = (testCounterValueExpected + 1) % 100; // This test is about the expected value changing - but not testing more complicated issues like bounds var updateRequest = new ClientModels.UpdateUserDataRequest(); updateRequest.Data = new Dictionary<string, string>(); updateRequest.Data[TEST_KEY] = testCounterValueExpected.ToString(); var updateTask = PlayFabClientAPI.UpdateUserDataAsync(updateRequest); updateTask.Wait(); // The update doesn't return anything interesting except versionID. It's better to just re-call GetUserData again below to verify the update UUnitAssert.Null(updateTask.Result.Error, "UpdateUserData call failed"); UUnitAssert.NotNull(updateTask.Result.Result, "UpdateUserData call failed"); getRequest = new ClientModels.GetUserDataRequest(); var getDataTask2 = PlayFabClientAPI.GetUserDataAsync(getRequest); getDataTask2.Wait(); UUnitAssert.Null(getDataTask2.Result.Error, "UserData should have been retrieved from Api call"); UUnitAssert.NotNull(getDataTask2.Result.Result, "UserData should have been retrieved from Api call"); UUnitAssert.NotNull(getDataTask2.Result.Result.Data, "UserData should have been retrieved from Api call"); getDataTask2.Result.Result.Data.TryGetValue(TEST_KEY, out testCounter); UUnitAssert.NotNull(testCounter, "The updated UserData was not found in the Api results"); int.TryParse(testCounter.Value, out testCounterValueActual); UUnitAssert.Equals(testCounterValueExpected, testCounterValueActual); var timeUpdated = testCounter.LastUpdated; var testMin = DateTime.UtcNow - TimeSpan.FromMinutes(5); var testMax = testMin + TimeSpan.FromMinutes(10); UUnitAssert.True(testMin <= timeUpdated && timeUpdated <= testMax); }
/// <summary> /// Creates and updates the publisher-specific custom data for the user which is readable and writable by the client /// </summary> public static void UpdateUserPublisherData(UpdateUserDataRequest request, ProcessApiCallback<UpdateUserDataResult> resultCallback, ErrorCallback errorCallback, object customData = null) { if (_authKey == null) throw new Exception("Must be logged in to call this method"); string serializedJson = SimpleJson.SerializeObject(request, Util.ApiSerializerStrategy); Action<CallRequestContainer> callback = delegate(CallRequestContainer requestContainer) { ResultContainer<UpdateUserDataResult>.HandleResults(requestContainer, resultCallback, errorCallback, null); }; PlayFabHTTP.Post("/Client/UpdateUserPublisherData", serializedJson, "X-Authorization", _authKey, callback, request, customData); }
private void GetUserDataCallback1(GetUserDataResult result) { var testContext = (UUnitTestContext)result.CustomData; UserDataRecord userDataRecord; _testInteger = 0; // Default if the data isn't present if (result.Data.TryGetValue(TEST_DATA_KEY, out userDataRecord)) int.TryParse(userDataRecord.Value, out _testInteger); _testInteger = (_testInteger + 1) % 100; // This test is about the Expected value changing - but not testing more complicated issues like bounds var updateRequest = new UpdateUserDataRequest { Data = new Dictionary<string, string> { { TEST_DATA_KEY, _testInteger.ToString() } } }; PlayFabClientAPI.UpdateUserData(updateRequest, PlayFabUUnitUtils.ApiCallbackWrapper<UpdateUserDataResult>(testContext, UpdateUserDataCallback), SharedErrorCallback, testContext); }
/// <summary> /// Creates and updates the publisher-specific custom data for the user which is readable and writable by the client /// </summary> public static async Task<PlayFabResult<UpdateUserDataResult>> UpdateUserPublisherDataAsync(UpdateUserDataRequest request) { if (AuthKey == null) throw new Exception ("Must be logged in to call this method"); object httpResult = await PlayFabHTTP.DoPost(PlayFabSettings.GetURL() + "/Client/UpdateUserPublisherData", request, "X-Authorization", AuthKey); if(httpResult is PlayFabError) { PlayFabError error = (PlayFabError)httpResult; if (PlayFabSettings.GlobalErrorHandler != null) PlayFabSettings.GlobalErrorHandler(error); return new PlayFabResult<UpdateUserDataResult> { Error = error, }; } string resultRawJson = (string)httpResult; var serializer = JsonSerializer.Create(PlayFabSettings.JsonSettings); var resultData = serializer.Deserialize<PlayFabJsonSuccess<UpdateUserDataResult>>(new JsonTextReader(new StringReader(resultRawJson))); UpdateUserDataResult result = resultData.data; return new PlayFabResult<UpdateUserDataResult> { Result = result }; }
/// <summary> /// Creates and updates the title-specific custom data for the user which is readable and writable by the client /// </summary> public static void UpdateUserData(UpdateUserDataRequest request, UpdateUserDataCallback resultCallback, ErrorCallback errorCallback, object customData = null) { if (_authKey == null) throw new Exception("Must be logged in to call this method"); string serializedJson = JsonConvert.SerializeObject(request, Util.JsonFormatting, Util.JsonSettings); Action<CallRequestContainer> callback = delegate(CallRequestContainer requestContainer) { ResultContainer<UpdateUserDataResult>.HandleResults(requestContainer, resultCallback, errorCallback, null); }; PlayFabHTTP.Post("/Client/UpdateUserData", serializedJson, "X-Authorization", _authKey, callback, request, customData); }
protected IEnumerator saveUserData(UpdateUserDataRequest request) { wait = true; Debug.Log("Updating data"); PlayFabClientAPI.UpdateUserData(request, (result) => { succesfullSave(result); saveSuccesfull = true; wait = false; }, (error) => { failedSave(error); this.error = error; saveSuccesfull = false; wait = false; }); while (wait) { yield return null; } Debug.Log("Finish saveplayer"); }
/// <summary> /// Getting user combined info successfully completed. /// </summary> /// <param name="result">User combined info.</param> private void OnGetUserCombinedInfoResult(GetUserCombinedInfoResult result) { playerID = result.PlayFabId; playerUsername = result.AccountInfo.Username; int currency = result.VirtualCurrency["1"]; if (!result.Data.ContainsKey(GameConstants.accountLevelKey)) { Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add(GameConstants.accountLevelKey, "0"); playerData.Add(GameConstants.accountExpKey, "0"); playerData.Add(GameConstants.facebookPictureKey, playerPictureURL); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnAddDataSuccess, OnAddDataError); } else { int level = int.Parse(result.Data[GameConstants.accountLevelKey].Value); int exp = int.Parse(result.Data[GameConstants.accountExpKey].Value); bool boughtShe = result.Data.ContainsKey(GameConstants.boughtSheKey); this.GetUserStatistics(); OnLoginCompletedCallback(result.Inventory, playerDisplayName, currency, level, exp, boughtShe); } }
/// <summary> /// Callback called when user login completes. /// </summary> /// <param name="result">Result of user login</param> void OnLoginCompleted(LoginResult result) { playerID = result.PlayFabId; PushNotificationsManager.instance.Register(); this.LoadTitleData(); GetPhotonAuthenticationTokenRequest tokenrequest = new GetPhotonAuthenticationTokenRequest(); tokenrequest.PhotonApplicationId = AppId; PlayFabClientAPI.GetPhotonAuthenticationToken(tokenrequest, OnPhotonAuthenticationSuccess, OnPlayFabError); if (result.NewlyCreated) { Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add(GameConstants.accountLevelKey, "0"); playerData.Add(GameConstants.accountExpKey, "0"); playerData.Add(GameConstants.facebookPictureKey,playerPictureURL); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnAddDataSuccess, OnAddDataError); } else { Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add(GameConstants.facebookPictureKey, playerPictureURL); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnAddDataSuccess, OnAddDataError); } }
/// <summary> /// Callback called when new user creation completes. /// </summary> /// <param name="result">Result of user creation</param> void OnRegistrationCompleted(RegisterPlayFabUserResult result) { playerID = result.PlayFabId; playerUsername = result.Username; Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add(GameConstants.accountLevelKey, "0"); playerData.Add(GameConstants.accountExpKey, "0"); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnAddDataSuccess, OnAddDataError); }
/// <summary> /// Uploads the new account level and exp to the server. /// </summary> /// <param name="accountLevel">New account level.</param> /// <param name="accountExp">New account exp.</param> public void UpdateAccountExpAndLevel(int accountExp, int accountLevel) { Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add(GameConstants.accountExpKey, accountExp.ToString()); playerData.Add(GameConstants.accountLevelKey, accountLevel.ToString()); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnUpdateAccountExpAndLevelSuccess, OnAddDataError); }
/// <summary> /// Getting user combined info failed. /// When failed, will create all necessary keys again, and continue the login process. /// </summary> /// <param name="error">Error details.</param> private void OnGetUserCombinedInfoError(PlayFabError error) { Debug.Log("Get user combined info error: " + error.Error + " " + error.ErrorMessage); Dictionary<string, string> playerData = new Dictionary<string, string>(); playerData.Add(GameConstants.accountLevelKey, "0"); playerData.Add(GameConstants.accountExpKey, "0"); playerData.Add(GameConstants.facebookPictureKey, playerPictureURL); UpdateUserDataRequest request = new UpdateUserDataRequest(); request.Data = playerData; request.Permission = UserDataPermission.Public; PlayFabClientAPI.UpdateUserData(request, OnAddDataSuccess, OnAddDataError); }
/// <summary> /// Creates and updates the publisher-specific custom data for the user which is readable and writable by the client /// </summary> public static void UpdateUserPublisherData(UpdateUserDataRequest request, UpdateUserPublisherDataCallback resultCallback, ErrorCallback errorCallback) { if (AuthKey == null) throw new Exception ("Must be logged in to call this method"); string serializedJSON = JsonConvert.SerializeObject(request, Util.JsonFormatting, Util.JsonSettings); Action<string,string> callback = delegate(string responseStr, string errorStr) { UpdateUserDataResult result = null; PlayFabError error = null; ResultContainer<UpdateUserDataResult>.HandleResults(responseStr, errorStr, out result, out error); if(error != null && errorCallback != null) { errorCallback(error); } if(result != null) { if(resultCallback != null) { resultCallback(result); } } }; PlayFabHTTP.Post(PlayFabSettings.GetURL()+"/Client/UpdateUserPublisherData", serializedJSON, "X-Authorization", AuthKey, callback); }
void SetUserData() { UpdateUserDataRequest request = new UpdateUserDataRequest() { Data = new Dictionary<string, string>(){ {"name", input.text}, {"win", "0"}, {"lose", "0"} } }; PlayFabClientAPI.UpdateUserData(request, (result) => { Debug.Log("Successfully updated user data"); }, (error) => { Debug.Log("Got error setting user data Ancestor to Arthur"); Debug.Log(error.ErrorDetails); }); }
//Playfab void SetWinLose(string key) { if (key == "win") { UpdateUserDataRequest request = new UpdateUserDataRequest () { Data = new Dictionary<string, string> () { { "win", win+1 + "" }, } }; PlayFabClientAPI.UpdateUserData(request, (result) => { Debug.Log("Successfully updated user data"); }, (error) => { Debug.Log("Got error setting user data Ancestor to Arthur"); Debug.Log(error.ErrorDetails); }); } if (key == "lose") { UpdateUserDataRequest request = new UpdateUserDataRequest () { Data = new Dictionary<string, string> () { { "lose", lose+1 + "" }, } }; PlayFabClientAPI.UpdateUserData(request, (result) => { Debug.Log("Successfully updated user data"); }, (error) => { Debug.Log("Got error setting user data Ancestor to Arthur"); Debug.Log(error.ErrorDetails); }); } }
public void SetUserData (Dictionary<string,string> lstUserData) { UpdateUserDataRequest request = new UpdateUserDataRequest () { Data = lstUserData }; PlayFabClientAPI.UpdateUserData (request, (result) => { Debug.Log ("Successfully updated user data"); }, (error) => { Debug.Log ("Got error setting user data"); Debug.Log (error.ErrorDetails); }); }