示例#1
0
        private IEnumerator GetUserDetailsCall(OnUserDetailsSucessDelegate OnSucess, OnUserDetailsFailedDelegate OnFailed, bool isRetry = false)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>(AuthorizationHeader);

            headers.Add("Authorization", "Bearer " + AccessToken);

            WWW www = new WWW(API_URL + "me", null, headers);

            yield return(www);

            while (!www.isDone)
            {
                yield return(new WaitForEndOfFrame());
            }

            if (!string.IsNullOrEmpty(www.error))
            {
                Debug.LogError(www.error);

                if (!isRetry)
                {
                    Debug.Log("Retrying");
                    //refresh access code and retry this call in case access code expired
                    StartCoroutine(GetAccessToken(delegate {
                        StartCoroutine(GetUserDetailsCall(OnSucess, OnFailed, true));
                    }, delegate(string error) {
                        OnFailed(www.error);
                    }));
                }
                else
                {
                    OnFailed(www.error);
                }
            }
            else
            {
                Debug.Log(www.text);
                CurrentUser = JsonConvert.DeserializeObject <User>(www.text);
                OnSucess(CurrentUser);
            }
        }
示例#2
0
文件: Quarters.cs 项目: weiks/q-slots
 public void GetUserDetails(OnUserDetailsSucessDelegate OnSuccessDelegate, OnUserDetailsFailedDelegate OnFailedDelegate)
 {
     StartCoroutine(GetUserDetailsCall(OnSuccessDelegate, OnFailedDelegate));
 }