public static void LogTutorialStatusUpdate(string lessonId, string lessonStatus) { var userId = UnityConnectProxy.GetUserId(); if (userId.IsNullOrEmpty()) { return; } var getLink = @"/v1/users/" + userId + @"/lessons"; var address = HostAddress + getLink; var jsonData = RegisterLessonRequest.GetJSONString(lessonStatus, userId, lessonId); var req = UnityWebRequest.Post(address, jsonData); var data = System.Text.Encoding.UTF8.GetBytes(jsonData); req.uploadHandler = new UploadHandlerRaw(data); req.SetRequestHeader("Content-Type", "application/json"); req.SetRequestHeader("X-IET-Version", GetVersion()); req.SetRequestHeader("Authorization", "Bearer " + UnityConnectProxy.GetAccessToken()); SendWebRequest(req, r => { if (!IsRequestSuccess(r)) { return; } }); }
private static void GetTutorial(string lessonId, Action <List <TutorialProgressStatus> > action) { var userId = UnityConnectProxy.GetUserId(); if (userId.IsNullOrEmpty()) { if (!HasWarnedAboutLogin) { Debug.LogWarning("Error: No user ID. Are you logged in?"); HasWarnedAboutLogin = true; } return; } var getLink = @"/v1/users/" + userId + @"/lessons"; var address = HostAddress + getLink; var req = MakeGetLessonsRequest(address, lessonId); SendWebRequest(req, (UnityWebRequest r) => { if (!IsRequestSuccess(r)) { return; } var lessonResponses = TutorialProgressStatus.ParseResponses(r.downloadHandler.text); action(lessonResponses); }); }
private static UnityWebRequest MakeGetLessonsRequest(string address, string lessonId) { if (!string.IsNullOrEmpty(lessonId)) { address += "?lessonId=" + lessonId; } var req = UnityWebRequest.Post(address, new WWWForm()); req.SetRequestHeader("Content-Type", "application/json"); req.SetRequestHeader("X-IET-Version", GetVersion()); req.SetRequestHeader("Authorization", "Bearer " + UnityConnectProxy.GetAccessToken()); req.method = "GET"; return(req); }
/// <summary> /// Opens an Url in the browser. /// Links to Unity's websites will open only if the user is logged in. /// </summary> /// <param name="url"></param> public static void OpenUrl(string url) { if (string.IsNullOrEmpty(url)) { return; } string urlWithoutHttpPrefix = RemoveHttpProtocolPrefix(url); if (IsUnityUrlRequiringAuthentication(urlWithoutHttpPrefix) && UnityConnectProxy.loggedIn) { UnityConnectProxy.OpenAuthorizedURLInWebBrowser(url); return; } Application.OpenURL(url); }
public static async void LogTutorialStatusUpdate(string lessonId, string lessonStatus) { var userId = UnityConnectProxy.GetUserId(); if (userId.IsNullOrEmpty()) { return; } var getLink = @"/v1/users/" + userId + @"/lessons"; var jsonData = RegisterLessonRequest.GetJSONString(lessonStatus, userId, lessonId); // UnityWebRequests were causing memory leaks here, so they were replaced with HttpClient using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, getLink)) { var data = new StringContent(jsonData, Encoding.UTF8, "application/json"); request.Content = data; request.Headers.Add("X-IET-Version", GetVersion()); request.Headers.Add("Authorization", "Bearer " + UnityConnectProxy.GetAccessToken()); HttpResponseMessage response = await s_HttpClient.SendAsync(request); } }