示例#1
0
    private void GetUserData()
    {
        var request = new GetUserDataRequest {
            PlayFabId = PlayFabManager.playFabId, Keys = null
        };

        PlayFabClientAPI.GetUserData(request, result =>
        {
            Debug.Log("Got Adeptness data:");
            if ((result.Data == null) || (result.Data.Count == 0))
            {
                Debug.Log("No Adeptness data available");
                SetOrUpdateUserData();
            }
            else
            {
                currentPlayerAdeptness = float.Parse(result.Data["Adeptness"].Value);
                Debug.Log(currentPlayerAdeptness);
                InitializeHistoryQueue();
            }
        }, error =>
        {
            Debug.Log("Got error retrieving Adeptness data:");
            Debug.Log(error.ErrorMessage);
        });
    }
示例#2
0
        public static void GetUserPublisherReadOnlyData()
        {
            var request = new GetUserDataRequest();

            // getRequest.Keys = new System.Collections.Generic.List<string>() { filterKey };
            PlayFabClientAPI.GetUserPublisherReadOnlyData(request, GetUserPublisherReadOnlyDataCallback, PfSharedControllerEx.FailCallback("GetUserPublisherReadOnlyDataCallback"));
        }
示例#3
0
    void GetUserData()
    {
        GetUserDataRequest request = new GetUserDataRequest()
        {
            PlayFabId = PlayFabId,
            Keys      = null
        };

        PlayFabClientAPI.GetUserData(request, (result) => {
            Debug.Log("Got user data:");
            if ((result.Data == null) || (result.Data.Count == 0))
            {
                Debug.Log("No user data available");
            }
            else
            {
                foreach (var item in result.Data)
                {
                    Debug.Log("    " + item.Key + " == " + item.Value.Value);
                }
            }
        }, (error) => {
            Debug.Log("Got error retrieving user data:");
            Debug.Log(error.ErrorMessage);
        });
    }
示例#4
0
    public void GetPlayFabData()
    {
        var request = new GetUserDataRequest {
        };

        PlayFabClientAPI.GetUserData(request, OnGetDataSuccess, OnGetDataFailure);
    }
        public async Task <GetUserDataResult> GetUserData(string playFabId, List <string> keys)
        {
            var sessionTicket = await GetSessionTicket();

            if (string.IsNullOrWhiteSpace(sessionTicket))
            {
                throw new Exception(Constants.ACCESS_DENIED_ERROR);
            }

            var request = new GetUserDataRequest
            {
                AuthenticationContext = new PlayFabAuthenticationContext {
                    ClientSessionTicket = sessionTicket
                },
                PlayFabId = playFabId,
                Keys      = keys
            };

            try
            {
                var res = await PlayFabClientAPI.GetUserDataAsync(request);

                if (res.Error != null)
                {
                    throw new Exception(res.Error.ErrorMessage);
                }

                return(res.Result);
            }
            catch (Exception exception)
            {
                HandleError(exception);
                throw;
            }
        }
示例#6
0
        public void GetPlayerDataDeserialized <T>(string i_key, Callback <T> requestSuccessCallback)
        {
            StartRequest("Request player data " + i_key);

            GetUserDataRequest request = new GetUserDataRequest()
            {
                PlayFabId = PlayFabId,
                Keys      = new List <string>()
                {
                    i_key
                }
            };

            PlayFabClientAPI.GetUserReadOnlyData(request, (result) => {
                RequestComplete("Player data request complete: " + i_key, LogTypes.Info);

                if ((result.Data == null) || (result.Data.Count == 0))
                {
                    MyMessenger.Send <LogTypes, string, string>(MyLogger.LOG_EVENT, LogTypes.Error, "No user data for " + i_key, PLAYFAB);
                }
                else
                {
                    // should only call the callback ONCE because there is only one key
                    foreach (var item in result.Data)
                    {
                        requestSuccessCallback(JsonConvert.DeserializeObject <T>(item.Value.Value));
                    }
                }
            }, (error) => { HandleError(error, BackendMessages.PLAYER_DATA_REQUEST_FAIL); });
        }
示例#7
0
        public static async Task <int> GetGamesPlayed(string playFabId, PlayFabApiSettings apiSettings, PlayFabAuthenticationContext authenticationContext)
        {
            var request = new GetUserDataRequest
            {
                PlayFabId = playFabId,
                Keys      = new List <string> {
                    Constants.GAMES_PLAYED_KEY
                }
            };

            var serverApi = new PlayFabServerInstanceAPI(apiSettings, authenticationContext);

            var result = await serverApi.GetUserDataAsync(request);

            if (result.Error != null)
            {
                throw new Exception($"An error occured while fetching the number of games played: Error: {result.Error.GenerateErrorReport()}");
            }

            var resultData = result.Result.Data;

            if (resultData.Count > 0 && resultData.TryGetValue(Constants.GAMES_PLAYED_KEY, out var gamesPlayedRecord))
            {
                return(int.Parse(gamesPlayedRecord.Value));
            }

            // Set the number of games played to be 0 since the record doesn't exist
            await SetGamesPlayed(0, playFabId, apiSettings, authenticationContext);

            return(0);
        }
示例#8
0
    private void GetUserData()
    {
        var request = new GetUserDataRequest {
            PlayFabId = PlayFabManager.playFabId, Keys = null
        };

        PlayFabClientAPI.GetUserData(request, result =>
        {
            Debug.Log("Got HighScore Data data:");
            if ((result.Data == null) || (result.Data.Count == 0))
            {
                Debug.Log("No HighScore Data data available");
                SetOrUpdateUserData();
            }
            else
            {
                _highScore = int.Parse(result.Data["HighScore"].Value);
                Debug.Log(_highScore);
                FireGuiUpdateEvents();
            }
        }, error =>
        {
            Debug.Log("Got error retrieving HighScore Data");
            Debug.Log(error.ErrorMessage);
        });
    }
    //玩家数据Player Data更新成功后调用
    void OnUpdateUserData(UpdateUserDataResult result)
    {
        //重新获取玩家数据Player Data
        GetUserDataRequest request = new GetUserDataRequest();

        PlayFabClientAPI.GetUserData(request, OnGetUserData, OnPlayFabError);
    }
示例#10
0
    public void getFriendImageUrl(string id, Image image, GameObject imobject)
    {
        GetUserDataRequest getdatarequest = new GetUserDataRequest()
        {
            PlayFabId = id,
        };

        PlayFabClientAPI.GetUserData(getdatarequest, (result) =>
        {
            Dictionary <string, UserDataRecord> data = result.Data;
            imobject.SetActive(true);
            if (data[MyPlayerData.AvatarIndexKey].Value.Equals("fb"))
            {
                if (data.ContainsKey("PlayerAvatarUrl"))
                {
                    // image.GetComponent<MonoBehaviour>().StartCoroutine(loadImage(data["PlayerAvatarUrl"].Value, image));
                    filterInputField.GetComponent <MonoBehaviour>().StartCoroutine(loadImage(data["PlayerAvatarUrl"].Value, image));
                }
            }
            else
            {
                if (playersAvatars == null)
                {
                    Debug.Log("NULLLLL");
                }
                image.sprite = playersAvatars[int.Parse(data[MyPlayerData.AvatarIndexKey].Value)];
            }
        }, (error) =>
        {
            Debug.Log("Data updated error " + error.ErrorMessage);
        }, null);
    }
示例#11
0
        private void UserDataApiContinued2(PlayFabResult <UpdateUserDataResult> updateResult, UUnitTestContext testContext, string failMessage)
        {
            var getRequest   = new GetUserDataRequest();
            var getDataTask2 = clientApi.GetUserDataAsync(getRequest, null, testTitleData.extraHeaders);

            ContinueWithContext(getDataTask2, testContext, UserDataApiContinued3, true, "GetUserData2 call failed", true);
        }
示例#12
0
    public static void RefreshAnimalData(Action onSuccess)
    {
        var request = new GetUserDataRequest();

        PlayFabClientAPI.GetUserData(request,
                                     userData =>
        {
            Debug.Log("RefreshAnimalData success");
            var types = (TileElement.ElementType[])Enum.GetValues(typeof(TileElement.ElementType));
            for (int i = 0; i < types.Length; i++)
            {
                var key = AnimalLevelData + types[i];
                if (userData.Data.ContainsKey(key))
                {
                    PlayerPrefs.SetInt(key, int.Parse(userData.Data[key].Value));
                }
            }
            onSuccess();
        }, error =>
        {
            Debug.LogWarning("Something went wrong with RefreshAnimalData :(");
            Debug.LogError(error.GenerateErrorReport());
        }
                                     );
    }
示例#13
0
        public void UserDataApi(UUnitTestContext testContext)
        {
            var getRequest   = new GetUserDataRequest();
            var getDataTask1 = PlayFabClientAPI.GetUserDataAsync(getRequest);

            ContinueWithContext(getDataTask1, testContext, UserDataApiContinued1, true, "GetUserData1 call failed", false);
        }
示例#14
0
        public void UserDataApi(UUnitTestContext testContext)
        {
            var getRequest   = new GetUserDataRequest();
            var getDataTask1 = clientApi.GetUserDataAsync(getRequest, null, testTitleData.extraHeaders);

            ContinueWithContext(getDataTask1, testContext, UserDataApiContinued1, true, "GetUserData1 call failed", false);
        }
示例#15
0
        public async Task <ResultWrapper <VerificationCheckOutput> > Handle(VerificationCheckQuery request, CancellationToken cancellationToken)
        {
            ResultWrapper <VerificationCheckOutput> verificationCheckResult = new ResultWrapper <VerificationCheckOutput>();

            GetUserDataRequest getUserDataReq = new GetUserDataRequest()
            {
                idToken = request.idToken
            };

            ResultWrapper <GetUserDataResponse> getUserDataResult = await _fireBaseTool.GetUserData(getUserDataReq);

            if (!getUserDataResult.Status)
            {
                verificationCheckResult.Status  = false;
                verificationCheckResult.Message = getUserDataResult.Message;
                return(verificationCheckResult);
            }

            verificationCheckResult.Status = true;
            verificationCheckResult.Result = new VerificationCheckOutput()
            {
                IsVerifed = getUserDataResult.Result.emailVerified
            };

            return(verificationCheckResult);
        }
示例#16
0
        public static async Task <string> GetIPAsync(string url)
        {
            var ip = "";

            try
            {
                var request = new GetUserDataRequest
                {
                    Keys = new List <string>()
                    {
                        url
                    },
                };

                var data = PlayFabClientAPI.GetUserDataAsync(request);

                await data.ContinueWith((x) =>
                {
                    if (data.Result.Error != null)
                    {
                        ip = "ERROR -- " + data.Result.Error.ErrorMessage;
                    }
                    else if (data.Result.Result != null)
                    {
                        ip = data.Result.Result.Data[url].Value;
                    }
                });
            }
            catch (Exception e)
            {
                ip = "ERROR -- " + e.Message;
            }

            return(ip);
        }
示例#17
0
        protected override void getPlayerModelByID(PlayerAuthenticationModel playerAuthModel, PlayerCombatBehaviourBase playerCombatBehaviourInstance,
                                                   Action <ServerPlayerModel> onSuccessHandler, Action onFailureHandler)
        {
            GetUserDataRequest request = new GetUserDataRequest();

            request.PlayFabId = playerAuthModel.UserID;
            request.Keys      = USER_DATA_KEYS;

            PlayFabServerAPI.GetUserDataAsync(request).ContinueWith(t => {
                if (t.Result.Error != null)
                {
                    onFailureHandler();
                }
                else
                {
                    try
                    {
                        ServerPlayerModel serverPlayerModel = parseServerPlayerModelFromData(t.Result.Result.Data, playerCombatBehaviourInstance);
                        onSuccessHandler(serverPlayerModel);
                    }
                    catch (Exception e)
                    {
                        Log.Warning("PlayFabPlayerService unable to parse player with ID: " + playerAuthModel.UserID + " " + e.Message);
                        onFailureHandler();
                    }
                }
            });
        }
示例#18
0
    public void GetLevelsInfo(System.Action <object, int []> callback)
    {
        GetUserDataRequest req = new GetUserDataRequest();

        req.PlayFabId = playFabId;

        int[] li = new int[20];
        for (int i = 0; i < li.Length; i++)
        {
            li[i] = -1;
        }

        PlayFabClientAPI.GetUserData(req, (userDataResult) =>
        {
            //Debug.Log("Got the result");
            if (userDataResult.Data != null && userDataResult.Data.ContainsKey("Level"))
            {
                UserDataRecord udr;
                userDataResult.Data.TryGetValue("Level", out udr);
                string[] d = udr.Value.ToString().Split(':');
                //Debug.Log("Finished = " + d.Length);
                for (int i = 0; i < li.Length; i++)
                {
                    //Debug.Log("I = " + i.ToString());
                    li[i] = int.Parse(d[i]);
                }
            }
            callback(userDataResult, li);
        }, (error) =>
        {
            Debug.Log("Errror " + error);
            callback(error, li);
        });
    }
    //更新玩家数据Player Data(成就奖励已领取)成功后调用
    void OnUpdateUserRewardData(UpdateUserDataResult result)
    {
        //UpdateUserDataRequest函数调用成功后,使用GetUserDataRequest函数,重新获取玩家的自定义属性,保存在PlayFabUserData类的userData中;
        GetUserDataRequest request = new GetUserDataRequest();

        PlayFabClientAPI.GetUserData(request, OnGetUserData2, OnPlayFabError);
    }
示例#20
0
    public void GetPartyOnServer()
    {
        List <string> partyKey = new List <string>();

        partyKey.Add("Party1");
        partyKey.Add("Party2");
        partyKey.Add("Party3");
        partyKey.Add("Party4");

        var dataRequest = new GetUserDataRequest()
        {
            Keys = partyKey
        };

        PlayFabClientAPI.GetUserData(dataRequest, (result) =>
        {
            Debug.Log(PlayFab.Json.PlayFabSimpleJson.SerializeObject(result));
            partyResult = result;
            if (characterListLoadingFinish)
            {
                SettingParty();
            }
        }, (error) =>
        {
            Debug.Log(error.GenerateErrorReport());
        });
    }
        public static async Task <bool> GetPlayerTitleData(string titlePlayerId, List <PlayFabFileDetails> files)
        {
            var requestData = new GetUserDataRequest()
            {
                PlayFabId = titlePlayerId
            };

            requestData.Keys = files.Select(y => y.FileName).ToList();
            var result = await PlayFabServerAPI.GetUserReadOnlyDataAsync(requestData);

            if (result.Error == null)
            {
                foreach (var file in files)
                {
                    if (result.Result.Data.ContainsKey(file.FileName))
                    {
                        file.ExistOnServer = true;
                        file.DataAsString  = result.Result.Data[file.FileName].Value;
                    }
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#22
0
    void GetUserData()
    {
        GetUserDataRequest request = new GetUserDataRequest()
        {
            PlayFabId = PlayFabId,
            Keys      = null
        };

        PlayFabClientAPI.GetUserData(request, (result) => {
            Debug.Log("Got user data:");
            if ((result.Data == null) || (result.Data.Count == 0))
            {
                Debug.Log("No user data available");
            }
            else
            {
                win  = int.Parse(result.Data["win"].Value);
                lose = int.Parse(result.Data["lose"].Value);
                Debug.Log("WIN: " + win + ", LOSE: " + lose);
            }
        }, (error) => {
            Debug.Log("Got error retrieving user data:");
            Debug.Log(error.ErrorMessage);
        });
    }
示例#23
0
    protected IEnumerator userDataQuerry(GetUserDataRequest request)
    {
        wait = true;

        PlayFabClientAPI.GetUserData(request, (result) => {
            Debug.Log("Got user data:");
            if ((result.Data == null) || (result.Data.Count == 0))
            {
                Debug.Log("No user data available");
            }
            else
            {
                succesfullUserDataQuerry(result);
            }
            querrySuccesfull = true;
            wait             = false;
        }, (error) => {
            failedUserDataQuerry(error);
            this.error       = error;
            querrySuccesfull = false;
            wait             = false;
        });

        while (wait)
        {
            yield return(null);
        }
    }
示例#24
0
        public async Task <ResultWrapper <GetUserDataResponse> > GetUserData(GetUserDataRequest request)
        {
            ResultWrapper <GetUserDataResponse> result = new ResultWrapper <GetUserDataResponse>()
            {
                Result = new GetUserDataResponse()
            };

            HttpContent content = new StringContent(JsonConvert.SerializeObject(request), System.Text.Encoding.UTF8, "application/json");;
            string      action  = GetUserData_URL.Replace("API_KEY", _appSettings.FireBase.ApiKey);

            HttpResponseMessage response = await _httpClient.PostAsync(BASE_URL + action, content);

            string strResponse = await response.Content.ReadAsStringAsync();

            GetUserDataResponseWrapper resultWrapper = JsonConvert.DeserializeObject <GetUserDataResponseWrapper>(strResponse);

            resultWrapper.users = resultWrapper.users ?? new List <GetUserDataResponse>()
            {
            };
            result.Status = resultWrapper.users.Count > 0;
            if (!result.Status)
            {
                result.Message = "Can't retrive user data";
            }
            result.Result = resultWrapper.users.FirstOrDefault();
            return(result);
        }
示例#25
0
    public void GetBoosterData(Action <Dictionary <string, int> > Callback)
    {
        string PlayFabId = NetworkManager.UserID;

        GetUserDataRequest request = new GetUserDataRequest()
        {
            PlayFabId = PlayFabId,
            Keys      = null
        };

        PlayFabClientAPI.GetUserData(request, (result) => {
            if ((result.Data == null) || (result.Data.Count == 0))
            {
                Debug.Log("No user data available");
            }
            else
            {
                Dictionary <string, int> dicBoost = new Dictionary <string, int> ();
                foreach (var item in result.Data)
                {
                    if (item.Key.Contains("Boost_"))
                    {
                        dicBoost.Add(item.Key, int.Parse(item.Value.Value));
                        //Debug.Log("    " + item.Key + " == " + item.Value.Value);
                    }
                }
                Callback(dicBoost);
            }
        }, (error) => {
            Debug.Log("Got error retrieving user data:");
            Debug.Log(error.ErrorMessage);
        });
    }
示例#26
0
    public static void RefreshUserData(Action onSuccess)
    {
        var request = new GetUserDataRequest();

        PlayFabClientAPI.GetUserData(request,
                                     userData =>
        {
            Debug.Log("RefreshUserData success");
            if (userData.Data.ContainsKey(SoftCurrencyKey))
            {
                PlayerPrefs.SetInt(SoftCurrencyKey, int.Parse(userData.Data[SoftCurrencyKey].Value));
            }
            if (userData.Data.ContainsKey(FreeGiftTimeKey))
            {
                PlayerPrefs.SetString(FreeGiftTimeKey, userData.Data[FreeGiftTimeKey].Value);
            }
            onSuccess();
        },
                                     error =>
        {
            Debug.LogWarning("Something went wrong with RefreshUserData :(");
            Debug.LogError(error.GenerateErrorReport());
        }
                                     );
    }
示例#27
0
        /**
         * Initialises user data.
         */
        partial void InitialisePartial()
        {
            Debug.Log("Initialising data");

            GetUserDataRequest request = new GetUserDataRequest();

            PlayFabClientAPI.GetUserData(request, OnDataSuccess, OnDataFailure);
        }
示例#28
0
        private void UpdateUserDataCallback(UpdateUserDataResult result)
        {
            var testContext = (UUnitTestContext)result.CustomData;

            var getRequest = new GetUserDataRequest();

            clientInstance.GetUserData(getRequest, PlayFabUUnitUtils.ApiActionWrapper <GetUserDataResult>(testContext, GetUserDataCallback2), PlayFabUUnitUtils.ApiActionWrapper <PlayFabError>(testContext, SharedErrorCallback), testContext);
        }
示例#29
0
        private void UpdateUserDataCallback(UpdateUserDataResult result)
        {
            var testContext = (UUnitTestContext)result.CustomData;

            var getRequest = new GetUserDataRequest();

            PlayFabClientAPI.GetUserData(getRequest, PlayFabUUnitUtils.ApiActionWrapper <GetUserDataResult>(testContext, GetUserDataCallback2), PlayFabUUnitUtils.ApiActionWrapper <PlayFabError>(testContext, SharedErrorCallback), testContext, testTitleData.extraHeaders);
        }
示例#30
0
        public void DownloadPlayerData(List <string> keys, Action <GetUserDataResult> result, Action <PlayFabError> loginFailure)
        {
            var request = new GetUserDataRequest {
                Keys = keys
            };

            PlayFabClientAPI.GetUserData(request, result, loginFailure);
        }
 /// <summary>
 /// get data 
 /// </summary>
 /// <returns> GetUserDataResponse object</returns>
 /// <param name="request"> GetUserDataRequest object</param>
 public GetUserDataResponse GetUserData(GetUserDataRequest request)
 {
     return GetUserData(request, Guid.NewGuid().ToString());
 }
 /// <summary>
 /// get data 
 /// </summary>
 /// <returns> GetUserDataResponse object</returns>
 /// <param name="request"> GetUserDataRequest object</param>
 /// <param name='jsonRpcCallId'>
 /// The json rpc call identifier. This is a string generated by the client, which can be used to correlate the response to the request. Max length is 256 characters. A JSON-RPC id must be generated on a per call invocation basis. The Rogerthat platform uses the id of the call to store the call result for a certain amount of time so that if something fails during the communication, the same call (having the same JSON-RPC id) can be resent to the Rogerthat service, allowing to fetch the result, without actually executing the call again. This avoids annoying problems such as duplicate delivery of messages.
 /// 
 /// You should use a different JSON-RPC id for every call you make.
 /// 
 /// In case of an intermittent failure such as a network connectivity problem, you can retry the same call using the same JSON-RPC id, without running the risk of duplicate execution of your call (e.g. duplicate message delivery).
 /// </param>
 public GetUserDataResponse GetUserData(GetUserDataRequest request, string jsonRpcCallId)
 {
     GetUserDataResponse result = new GetUserDataResponse();
     WireRequest(0, jsonRpcCallId, "system.get_user_data", (writer) =>
     {
         request.Write(writer, false);
     }, (reader) =>
     {
         result.Read(reader);
     }
     );
     return result;
 }