示例#1
0
        public IEnumerator SendCoroutine()
        {
            Spil spil = GameObject.FindObjectOfType <Spil>();

            platform = EditorUserBuildSettings.activeBuildTarget.ToString().Trim().ToLower();

#if UNITY_5_6_OR_NEWER
            bundleIdentifier = PlayerSettings.applicationIdentifier;
#elif UNITY_5_3_OR_NEWER
            bundleIdentifier = PlayerSettings.bundleIdentifier;
                        #endif

            AddDefaultParameters();

            WWWForm requestForm = new WWWForm();
            requestForm.AddField("name", eventName);
            requestForm.AddField("data", data.ToString());
            requestForm.AddField("customData", !customData.IsNull ? customData.Print() : "{}");


            var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            var time  = (long)(DateTime.Now.ToUniversalTime() - epoch).TotalMilliseconds;

            requestForm.AddField("ts", time.ToString());
            requestForm.AddField("queued", 0);
            if (Spil.Instance.GetPrivValue() > -1)
            {
                requestForm.AddField("priv", Spil.Instance.GetPrivValue());
            }


            if (spil.EditorDebugMode)
            {
                requestForm.AddField("debugMode", Convert.ToString(spil.EditorDebugMode).ToLower());
            }

            if (SpilUnityEditorImplementation.spilToken != null)
            {
                requestForm.AddField("spilToken", SpilUnityEditorImplementation.spilToken);
            }

            WWW request =
                new WWW(
                    "https://apptracker.spilgames.com/v1/native-events/event/" + platform + "/" + Spil.BundleIdEditor +
                    "/" + eventName, requestForm);
            yield return(request);

            SpilLogging.Log("Sending event: " + "Name: " + eventName + " \nData: " + data + " \nCustom Data: " +
                            customData.Print() + " \nTimestamp: " + time);

            if (request.error != null && !request.error.Equals(""))
            {
                if (Spil.BundleIdEditor == null || Spil.BundleIdEditor.Equals(""))
                {
                    SpilLogging.Error(
                        "Spil Initialize might not have been called! Please make sure you call Spil.Initialize() at app start!");
                }
                else if (request.responseHeaders != null && request.responseHeaders.Count > 0)
                {
                    foreach (KeyValuePair <string, string> entry in request.responseHeaders)
                    {
                        if (entry.Key.Equals("STATUS"))
                        {
                            if (entry.Value.Contains("401"))
                            {
                                SocialLoginManager.ProcessUnauthorizedResponse(request.text);
                                SpilLogging.Error("Unauthorized 401 event! Error: " + request.text);
                            }
                            else
                            {
                                SpilLogging.Error("Error getting data: " + request.error);
                                SpilLogging.Error("Error getting data: " + request.text);
                            }
                        }
                    }
                }
                else
                {
                    SpilLogging.Error("Error getting data: " + request.error);
                    SpilLogging.Error("Error getting data: " + request.text);
                }
            }
            else
            {
                JSONObject serverResponse = new JSONObject(request.text);
                SpilLogging.Log("Data returned: \n" + serverResponse);
                ResponseEvent.Build(serverResponse);
            }
            GameObject.Destroy(this);
        }
 public override void ShowUnauthorizedDialog(string title, string message, string loginText,
                                             string playAsGuestText)
 {
     SocialLoginManager.ShowUnauthorizedDialog(title, message, loginText, playAsGuestText);
 }