private async System.Threading.Tasks.Task Authenticate(string accessToken, string fbid) { ProfilePhoto.Background = new ImageBrush() { ImageSource = new BitmapImage(new Uri(String.Format("https://graph.facebook.com/me/picture?access_token={0}&height=100&width=100", accessToken))) }; FacebookSessionInfo sessionInfo = new FacebookSessionInfo(); sessionInfo.FacebookToken = accessToken; sessionInfo.FacebookID = fbid; Geolocator location = new Geolocator(); location.DesiredAccuracy = PositionAccuracy.Default; var usrLocation = await location.GetGeopositionAsync(); TinderSession activeSession = TinderSession.CreateNewSession(sessionInfo, new Position() { Latitude = usrLocation.Coordinate.Latitude, Longitude = usrLocation.Coordinate.Longitude }); if (await activeSession.Authenticate()) { (App.Current as App).RightSideBar.DataContext = activeSession.Matches; TopBarViewModel.ShowTopButtons = System.Windows.Visibility.Visible; NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); App.RootFrame.RemoveBackEntry(); } }
//private async System.Threading.Tasks.Task Authenticate(string accessToken, string fbid) //{ // ProfilePhoto.Background = new ImageBrush() { ImageSource = new BitmapImage(new Uri(String.Format("https://graph.facebook.com/me/picture?access_token={0}&height=100&width=100", accessToken))) }; // FacebookSessionInfo sessionInfo = new FacebookSessionInfo(); // sessionInfo.FacebookToken = accessToken; // sessionInfo.FacebookID = fbid; // Geolocator location = new Geolocator(); // location.DesiredAccuracy = PositionAccuracy.Default; // var usrLocation = await location.GetGeopositionAsync(); // TinderSession activeSession = TinderSession.CreateNewSession(sessionInfo, new GeographicalCordinates() { Latitude = usrLocation.Coordinate.Latitude, Longitude = usrLocation.Coordinate.Longitude }); // if (await activeSession.Authenticate()) // { // (App.Current as App).RightSideBar.DataContext = activeSession.Matches; // TopBarViewModel.ShowTopButtons = System.Windows.Visibility.Visible; // NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); // App.RootFrame.RemoveBackEntry(); // } //} private async System.Threading.Tasks.Task Authenticate(string accessToken, string lkId) { // INICIO string _requestPeopleUrl = "http://api.linkedin.com/v1/people/~"; //string _requestPeopleUrl = "https://api.linkedin.com/v1/people/~:(id,first-name,last-name,headline)"; string nonce = oAuthUtil.GetNonce(); string timeStamp = oAuthUtil.GetTimeStamp(); try { System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient(); httpClient.MaxResponseContentBufferSize = int.MaxValue; httpClient.DefaultRequestHeaders.ExpectContinue = false; System.Net.Http.HttpRequestMessage requestMsg = new System.Net.Http.HttpRequestMessage(); requestMsg.Method = new System.Net.Http.HttpMethod("GET"); requestMsg.RequestUri = new Uri(_requestPeopleUrl, UriKind.Absolute); requestMsg.Headers.Add("x-li-format", "json"); string sigBaseStringParams = "oauth_consumer_key=" + _consumerKey; sigBaseStringParams += "&" + "oauth_nonce=" + nonce; sigBaseStringParams += "&" + "oauth_signature_method=" + "HMAC-SHA1"; sigBaseStringParams += "&" + "oauth_timestamp=" + timeStamp; sigBaseStringParams += "&" + "oauth_token=" + _accessToken; sigBaseStringParams += "&" + "oauth_verifier=" + _oAuthVerifier; sigBaseStringParams += "&" + "oauth_version=1.0"; string sigBaseString = "GET&"; sigBaseString += Uri.EscapeDataString(_requestPeopleUrl) + "&" + Uri.EscapeDataString(sigBaseStringParams); // LinkedIn requires both consumer secret and request token secret string signature = oAuthUtil.GetSignature(sigBaseString, _consumerSecretKey, _accessTokenSecretKey); string data = "realm=\"http://api.linkedin.com/\", oauth_consumer_key=\"" + _consumerKey + "\", oauth_token=\"" + _accessToken + "\", oauth_verifier=\"" + _oAuthVerifier + "\", oauth_nonce=\"" + nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + timeStamp + "\", oauth_version=\"1.0\", oauth_signature=\"" + Uri.EscapeDataString(signature) + "\""; requestMsg.Headers.Authorization = new AuthenticationHeaderValue("OAuth", data); var response = await httpClient.SendAsync(requestMsg); var text = response.Content.ReadAsStringAsync(); _linkedInProfile = await text; } catch (Exception Err) { throw; } //<?xml version="1.0" encoding="UTF-8" standalone="yes"?> //<person> // <first-name>Felipe</first-name> // <last-name>Cembranelli</last-name> // <headline>Manager at CI&T</headline> // <site-standard-profile-request> // <url>https://www.linkedin.com/profile/view?id=3770090&authType=name&authToken=moVF&trk=api*a3576543*s3647743*</url> // </site-standard-profile-request> //</person> var linkedinUser = JsonConvert.DeserializeObject <LinkedinUser>(_linkedInProfile); // FIM //ProfilePhoto.Background = new ImageBrush() { ImageSource = new BitmapImage(new Uri(String.Format("https://graph.facebook.com/me/picture?access_token={0}&height=100&width=100", accessToken))) }; LinkedInSessionInfo sessionInfo = new LinkedInSessionInfo(); sessionInfo.AcessToken = accessToken; sessionInfo.LinkedInID = linkedinUser.FirstName; sessionInfo.LinkedinUser = linkedinUser; //Geolocator location = new Geolocator(); //location.DesiredAccuracy = PositionAccuracy.Default; //var usrLocation = await location.GetGeopositionAsync(); //TinderSession activeSession = TinderSession.CreateNewSession(sessionInfo, new GeographicalCordinates() { Latitude = usrLocation.Coordinate.Latitude, Longitude = usrLocation.Coordinate.Longitude }); TinderSession activeSession = TinderSession.CreateNewSession(sessionInfo); if (await activeSession.Authenticate(_consumerKey, _accessToken, _oAuthVerifier, _consumerSecretKey, _accessTokenSecretKey)) { (App.Current as App).RightSideBar.DataContext = activeSession.Matches; TopBarViewModel.ShowTopButtons = System.Windows.Visibility.Visible; NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); App.RootFrame.RemoveBackEntry(); } }