コード例 #1
0
        private IEnumerator RemoveAttributeRoutine(string key, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Remove Attributes: " + key);

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            var parameters = "?authentication_token=" + GetAuthenticationToken() + "&game_user_attribute_key=" + key;
            var request    = UnityWebRequest.Get(CloudLogin.GetBaseURL() + "/users/" + CurrentUser.id + "/remove_game_user_attributes" + parameters);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Remove Attributes Success: " + key);

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                var        game_user_attributes = json.GetArray("game_user_attributes");

                attributes.Clear();
                foreach (var attribute in game_user_attributes)
                {
                    attributes.Add(attribute.Obj.GetString("key"), attribute.Obj.GetString("value"));
                }
            }

            CloudLoginUtilities.HandleCallback(request, "Attribute has been removed", callback);
        }
コード例 #2
0
        private IEnumerator SetScoreRoutine(int score, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Set Score: " + score.ToString());

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            WWWForm form = new WWWForm();

            form.AddField("authentication_token", GetAuthenticationToken());
            form.AddField("score", score);
            var request = UnityWebRequest.Post(CloudLogin.GetBaseURL() + "/users/" + CurrentUser.id + "/set_score", form);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Set Score Success: " + score.ToString());

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                SetScoreInternal(Convert.ToInt32(json.GetNumber("score")));
            }

            CloudLoginUtilities.HandleCallback(request, "Score have been added to user", callback);
        }
コード例 #3
0
ファイル: CloudLogin.cs プロジェクト: mitchmeyer1/cloud-login
 private void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         _instance = this;
     }
 }
コード例 #4
0
        private IEnumerator PurchaseStoreItemRoutine(int storeItemId, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Purchase Store Items: ");

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            WWWForm form = new WWWForm();

            form.AddField("authentication_token", GetAuthenticationToken());
            form.AddField("store_item_id", storeItemId.ToString());

            var request = UnityWebRequest.Post(CloudLogin.GetBaseURL() + "/users/" + CurrentUser.id + "/purchase_game_user_store_item", form);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Purchase Store Items Success: ");

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                var        game_user_store_items = json.GetArray("game_user_store_items");
                CurrentUser.SetCreditsInternal(Convert.ToInt32(json.GetNumber("credits")));
                purchasedStoreItems.Clear();

                foreach (var item in game_user_store_items)
                {
                    purchasedStoreItems.Add(new CloudLoginStoreItem(
                                                item.Obj.GetString("name"),
                                                item.Obj.GetString("category"),
                                                item.Obj.GetString("description"),
                                                Convert.ToInt32(item.Obj.GetNumber("cost")),
                                                Convert.ToInt32(item.Obj.GetNumber("id"))));
                }
            }

            CloudLoginUtilities.HandleCallback(request, "Store Item has been purchased by user", callback);
        }
コード例 #5
0
        private IEnumerator GetLeaderboardRoutine(int limit, bool onePerUser, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Get Leaderboard: " + limit.ToString());

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            var parameters = "?authentication_token=" + GetAuthenticationToken() + "&limit=" + limit.ToString() + "&one_per_user="******"/users/" + CurrentUser.id + "/leaderboard_entries" + parameters);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Get Leaderboard Success: : " + limit.ToString());

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                Debug.Log("got " + json);
                var storeItems = json.GetArray("leaderboard_entries");
                CloudLogin.Instance.leaderboardEntries.Clear();
                foreach (var storeItem in storeItems)
                {
                    CloudLogin.Instance.leaderboardEntries.Add(new CloudLoginLeaderboardEntry(
                                                                   storeItem.Obj.GetString("username"),
                                                                   Convert.ToInt32(storeItem.Obj.GetNumber("score")),
                                                                   storeItem.Obj.GetString("leaderboard_name"),
                                                                   storeItem.Obj.GetString("extra_attributes"),
                                                                   Convert.ToInt32(storeItem.Obj.GetNumber("game_user_id"))
                                                                   )
                                                               );
                }
            }

            CloudLoginUtilities.HandleCallback(request, "Store Item has been removed", callback);
        }
コード例 #6
0
        private IEnumerator DownloadStoreItemsRoutine(bool chainedFromLogin, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Download Store Items: ");

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            var parameters = "?authentication_token=" + GetAuthenticationToken();


            var request = UnityWebRequest.Get(CloudLogin.GetBaseURL() + "/users/" + CurrentUser.id + "/game_user_store_items" + parameters);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Download Store Items Success: ");

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                var        game_user_store_items = json.GetArray("game_user_store_items");
                purchasedStoreItems.Clear();

                foreach (var item in game_user_store_items)
                {
                    purchasedStoreItems.Add(new CloudLoginStoreItem(
                                                item.Obj.GetString("name"),
                                                item.Obj.GetString("category"),
                                                item.Obj.GetString("description"),
                                                Convert.ToInt32(item.Obj.GetNumber("cost")),
                                                Convert.ToInt32(item.Obj.GetNumber("id"))));
                }
            }

            CloudLoginUtilities.HandleCallback(request, chainedFromLogin ? "Users has been signed in successfully" : "Users store items have been downloaded", callback);
        }
コード例 #7
0
        private IEnumerator AddLeaderboardEntryRoutine(string leaderboardName, int score, Dictionary <string, string> extraAttributes, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Adding Leaderboard Entry: " + leaderboardName + ": " + score.ToString());

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            List <string> extraAttributesList = new List <string>();

            foreach (KeyValuePair <string, string> entry in extraAttributes)
            {
                extraAttributesList.Add("\"" + entry.Key.ToString() + "\": " + entry.Value.ToString());
            }

            string  extraAttributesJson = "{" + String.Join(", ", extraAttributesList.ToArray()) + "}";
            WWWForm form = new WWWForm();

            form.AddField("authentication_token", GetAuthenticationToken());
            form.AddField("leaderboard_name", leaderboardName);
            form.AddField("extra_attributes", extraAttributesJson);
            form.AddField("score", score);

            var request = UnityWebRequest.Post(CloudLogin.GetBaseURL() + "/users/" + CurrentUser.id + "/add_leaderboard_entry", form);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Add Leaderboard Entry: " + leaderboardName + ": " + score);

                var data = request.downloadHandler.text;
            }

            CloudLoginUtilities.HandleCallback(request, "Leaderboard Entry Has Been Added", callback);
        }
コード例 #8
0
        private IEnumerator DownloadAttributesRoutine(bool chainedFromLogin, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Get Attributes");

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            var parameters = "?authentication_token=" + GetAuthenticationToken();


            var request = UnityWebRequest.Get(CloudLogin.GetBaseURL() + "/users/" + this.id + "/game_user_attributes" + parameters);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Get Attributes Success");

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                var        game_user_attributes = json.GetArray("game_user_attributes");

                attributes.Clear();
                foreach (var attribute in game_user_attributes)
                {
                    attributes.Add(attribute.Obj.GetString("key"), attribute.Obj.GetString("value"));
                }
                DownloadStoreItems(chainedFromLogin, callback);
            }
            else
            {
                CloudLoginUtilities.HandleCallback(request, chainedFromLogin ? "Users has been signed in successfully" : "Users attributes have been downloaded", callback);
            }
        }
コード例 #9
0
        private IEnumerator SetAttributeRoutine(string key, string value, Action <string, bool> callback = null)
        {
            CloudLogin.Log("CloudLoginUser Set Attributes: " + key);

            if (CloudLogin.GetGameId() == null)
            {
                throw new CloudLoginException("Please set up your game with CloudLogin.SetUpGame before modifying users");
            }

            WWWForm form = new WWWForm();

            form.AddField("authentication_token", GetAuthenticationToken());
            form.AddField("key", key);
            form.AddField("value", value);

            var request = UnityWebRequest.Post(CloudLogin.GetBaseURL() + "/users/" + CurrentUser.id + "/add_game_user_attribute", form);

            request.SetRequestHeader("authentication_token", CloudLoginUser.CurrentUser.GetAuthenticationToken());

            yield return(request.SendWebRequest());

            if (CloudLoginUtilities.RequestIsSuccessful(request))
            {
                CloudLogin.Log("CloudLoginUser Set Attributes Success: " + key);

                var        data = request.downloadHandler.text;
                JSONObject json = JSONObject.Parse(data);
                attributes.Add(key, value);
                foreach (var attribute in attributes)
                {
                    print(attribute.Key + "," + attribute.Value);
                }
            }

            CloudLoginUtilities.HandleCallback(request, "Attribute has been added to user", callback);
        }