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); } }
public void GetUserDetails(OnUserDetailsSucessDelegate OnSuccessDelegate, OnUserDetailsFailedDelegate OnFailedDelegate) { StartCoroutine(GetUserDetailsCall(OnSuccessDelegate, OnFailedDelegate)); }