コード例 #1
0
ファイル: ElephantCore.cs プロジェクト: safakkazan/DrawFlight
        IEnumerator PostWithResponse(string url, string bodyJsonString)
        {
            var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST);

            byte[] bodyRaw = Encoding.UTF8.GetBytes(bodyJsonString);
            request.uploadHandler   = new UploadHandlerRaw(bodyRaw);
            request.downloadHandler = new DownloadHandlerBuffer();
            request.SetRequestHeader("Content-Type", "application/json");

            request.SetRequestHeader("Authorization", Utils.SignString(bodyJsonString, GameSecret));
            request.SetRequestHeader("GameID", GameID);

            yield return(request.SendWebRequest());

            Log("Status Code: " + request.responseCode);
            Log("Body: " + request.downloadHandler.text);

            if (request.isNetworkError)
            {
                Log("Request Error");
            }
            else
            {
                if (request.responseCode == 200)
                {
                    try
                    {
                        var a = JsonUtility.FromJson <OpenResponse>(request.downloadHandler.text);
                        if (a != null)
                        {
                            openRequestSucceded = true;
                            openResponse        = a;
                        }
                    }
                    catch (Exception e)
                    {
                        Debug.Log(e);
                    }
                }
            }


            openRequestWaiting = false;
        }
コード例 #2
0
ファイル: ElephantCore.cs プロジェクト: safakkazan/DrawFlight
        private IEnumerator InitSDK(bool isOldUser)
        {
            if (Utils.IsFileExists(OLD_ELEPHANT_FILE))
            {
                isOldUser = true;
            }

            string savedConfig = Utils.ReadFromFile(REMOTE_CONFIG_FILE);

            userId = Utils.ReadFromFile(USER_DB_ID) ?? "";

            Log("Remote Config From File --> " + savedConfig);

            var isUsingRemoteConfig = 0;

            openResponse = new OpenResponse();

            if (savedConfig != null)
            {
                RemoteConfig.GetInstance().Init(savedConfig);
                openResponse.remote_config_json = savedConfig;
            }

            openRequestWaiting  = true;
            openRequestSucceded = false;

            float startTime             = Time.time;
            var   realTimeBeforeRequest = DateTime.Now;

            RequestIDFAAndOpen(isOldUser);

            while (openRequestWaiting && (Time.time - startTime) < 5f)
            {
                yield return(null);
            }

            if (openRequestSucceded)
            {
                isUsingRemoteConfig = 1;
            }

            Log(JsonUtility.ToJson(openResponse));

            var parameters = Params.New()
                             .Set("real_duration", (DateTime.Now - realTimeBeforeRequest).TotalMilliseconds)
                             .Set("game_duration", (Time.time - startTime) * 1000)
                             .Set("is_using_remote_config", isUsingRemoteConfig)
                             .CustomString(JsonUtility.ToJson(openResponse));

            Elephant.Event("open_request", -1, parameters);

            RemoteConfig.GetInstance().Init(openResponse.remote_config_json);
            AdConfig.GetInstance().Init(openResponse.ad_config);
            Utils.SaveToFile(REMOTE_CONFIG_FILE, openResponse.remote_config_json);
            Utils.SaveToFile(USER_DB_ID, openResponse.user_id);
            currentSession.user_tag = RemoteConfig.GetInstance().GetTag();

            if (onOpen != null)
            {
                if (openResponse.consent_required)
                {
                    onOpen(true);
                }
                else
                {
                    onOpen(false);
                }
            }
            else
            {
                Debug.LogWarning("ElephantSDK onOpen event is not handled");
            }

            sdkIsReady = true;
            if (onRemoteConfigLoaded != null)
            {
                onRemoteConfigLoaded();
            }
        }