public void NextPage() { var realm = RealmManager.SharedInstance.GetRealm(null); var me = RealmUserServices.GetMe(true); if (!String.IsNullOrEmpty(FacebookFirstName) || !String.IsNullOrEmpty(FacebookLastName)) { realm.Write(() => { if (!String.IsNullOrEmpty(FacebookUserId)) me.FacebookID = FacebookUserId; if (!String.IsNullOrEmpty(FacebookFirstName)) me.FirstName = FacebookFirstName; if (!String.IsNullOrEmpty(FacebookLastName)) me.LastName = FacebookLastName; }); } var outlet = new Outlet(); outlet.Name = FacebookFullName; outlet.Handle = FacebookUserId; outlet.Locked = true; outlet.Type = Outlet.outlet_type_facebook; RealmServices.SaveOutlet(outlet); }
async public static Task <TwitterResponse> GetTwitterAccount(Account account) { string credentials_url = "https://api.twitter.com/1.1/account/verify_credentials.json"; var request = new OAuth1Request("GET", new Uri(credentials_url), null, account); TwitterResponse twitterResponse = null; await request.GetResponseAsync().ContinueWith(t => { if (t.IsFaulted) { System.Diagnostics.Debug.WriteLine("Error: " + t.Exception.InnerException.Message); return; } var res = t.Result; var resString = res.GetResponseText(); twitterResponse = JsonConvert.DeserializeObject <TwitterResponse>(resString); var outlet = new Outlet(); outlet.Handle = twitterResponse.screen_name; outlet.Type = Outlet.outlet_type_twitter; outlet.Name = twitterResponse.screen_name; RealmServices.SaveOutlet(outlet); }); return(twitterResponse); }
async public static Task <InstagramResponse> GetInstagramAccount(string token) { var client = new HttpClient(); client.Timeout = TimeSpan.FromSeconds(10); Dictionary <string, string> Parameters = new Dictionary <string, string>(); Parameters.Add("grant_type", "authorization_code"); Parameters.Add("code", token); Parameters.Add("redirect_uri", NotSensitive.SystemUrls.instagram_redirect_url); Parameters.Add("client_id", NotSensitive.SlinkKeys.instagram_client_id); Parameters.Add("client_secret", NotSensitive.SlinkKeys.instagram_client_secret); var contentsTask = await client.PostAsync("https://api.instagram.com/oauth/access_token", new FormUrlEncodedContent(Parameters)); if (contentsTask != null) { string result = contentsTask.Content.ReadAsStringAsync().Result; if (!String.IsNullOrEmpty(result)) { JToken jToken = JToken.Parse(result); var accessToken = jToken["access_token"].ToString(); if (!String.IsNullOrEmpty(accessToken)) { var client2 = new HttpClient(); client2.Timeout = TimeSpan.FromSeconds(10); var contentsTask2 = await client2.GetAsync("https://api.instagram.com/v1/users/self/?access_token=" + accessToken); if (contentsTask2 != null) { var result2 = JToken.Parse(contentsTask2.Content.ReadAsStringAsync().Result); if (result2 != null) { var response = JsonConvert.DeserializeObject <InstagramResponse>(result2["data"].ToString()); var outlet = new Outlet(); outlet.Handle = response.username; outlet.Type = Outlet.outlet_type_instagram; outlet.Name = response.full_name; RealmServices.SaveOutlet(outlet); return(response); } } } } } return(null); }
async public static Task <LinkedInResponse> GetLinkedInAccount(string token) { var client = new HttpClient(); client.Timeout = TimeSpan.FromSeconds(10); Dictionary <string, string> Parameters = new Dictionary <string, string>(); Parameters.Add("grant_type", "authorization_code"); Parameters.Add("code", token); Parameters.Add("redirect_uri", "https://mobile.linkedin.com"); Parameters.Add("client_id", NotSensitive.SlinkKeys.linkedin_client_id); Parameters.Add("client_secret", NotSensitive.SlinkKeys.linkedin_client_secret); var contentsTask = await client.PostAsync("https://www.linkedin.com/uas/oauth2/accessToken", new FormUrlEncodedContent(Parameters)); if (contentsTask != null) { string result = contentsTask.Content.ReadAsStringAsync().Result; if (!String.IsNullOrEmpty(result)) { JToken jToken = JToken.Parse(result); if (jToken == null || jToken["access_token"] == null) { return(null); } var accessToken = jToken["access_token"].ToString(); if (!String.IsNullOrEmpty(accessToken)) { var client2 = new HttpClient(); client2.Timeout = TimeSpan.FromSeconds(10); client2.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); var contentsTask2 = await client2.GetAsync("https://api.linkedin.com/v1/people/~:(id,first-name,last-name,public-profile-url)?format=json"); if (contentsTask2 != null) { string result2 = contentsTask2.Content.ReadAsStringAsync().Result; if (!String.IsNullOrEmpty(result2)) { var response = JsonConvert.DeserializeObject <LinkedInResponse>(result2); var handle = response.publicProfileUrl.Split('/').Last(); var outlet = new Outlet(); outlet.Handle = handle; outlet.Type = Outlet.outlet_type_linkedIn; outlet.Name = response.firstName + " " + response.lastName; RealmServices.SaveOutlet(outlet); return(response); } } } } } return(null); }
async public static Task <GithubResponse> GetGithubAccount(string token) { var client = new HttpClient(); client.Timeout = TimeSpan.FromSeconds(10); Dictionary <string, string> Parameters = new Dictionary <string, string>(); Parameters.Add("code", token); Parameters.Add("client_id", NotSensitive.SlinkKeys.github_client_id); Parameters.Add("client_secret", NotSensitive.SlinkKeys.github_client_secret); Parameters.Add("accept", "json"); HttpResponseMessage contentsTask = null; try { contentsTask = await client.PostAsync("https://github.com/login/oauth/access_token", new FormUrlEncodedContent(Parameters)); } catch (Exception e) { AppCenterManager.Report(e); return(null); } if (contentsTask == null) { return(null); } //access_token=01805dc46a84d7b7547f5d430629a0354fe7ddcd&scope=user%3Aemail&token_type=bearer string accessToken = null; string result = contentsTask.Content.ReadAsStringAsync().Result; if (!String.IsNullOrEmpty(result)) { var splitByAmpersand = result.Split('&'); foreach (String sub in splitByAmpersand) { if (sub.Contains("access_token")) { var seperatedByEquals = sub.Split('='); accessToken = seperatedByEquals.Last(); } } if (!String.IsNullOrEmpty(accessToken)) { var client2 = new HttpClient(); client2.Timeout = TimeSpan.FromSeconds(10); client2.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); client2.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"); var contentsTask2 = await client2.GetAsync("https://api.github.com/user?access_token=" + accessToken); if (contentsTask2 != null) { var result2 = JToken.Parse(contentsTask2.Content.ReadAsStringAsync().Result); if (result2 != null) { var response = JsonConvert.DeserializeObject <GithubResponse>(result2.ToString()); var outlet = new Outlet(); outlet.Handle = response.id; outlet.Type = Outlet.outlet_type_github; outlet.Name = response.login; RealmServices.SaveOutlet(outlet); return(response); } } } } return(null); }