void LoginToFacebook (object sender, EventArgs e) { var auth = new OAuth2Authenticator ( clientId: "346691492084618", scope: "", authorizeUrl: new Uri ("https://m.facebook.com/dialog/oauth/"), redirectUrl: new Uri ("http://www.facebook.com/connect/login_success.html")); // If authorization succeeds or is canceled, .Completed will be fired. auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { this.facebookStatus.Text = "Not Authenticated"; return; } // Now that we're logged in, make a OAuth2 request to get the user's info. var request = new OAuth2Request ("GET", new Uri ("https://graph.facebook.com/me"), null, ee.Account); request.GetResponseAsync().ContinueWith (t => { if (t.IsFaulted) this.facebookStatus.Text = "Error: " + t.Exception.InnerException.Message; else if (t.IsCanceled) this.facebookStatus.Text = "Canceled"; else { var obj = JsonValue.Parse (t.Result.GetResponseText()); this.facebookStatus.Text = "Logged in as " + obj["name"]; } }, uiScheduler); }; var intent = auth.GetUI (this); StartActivityForResult (intent, 42); }
private void FacebookAuthorizationCompleted(object sender, AuthenticatorCompletedEventArgs e) { dialog.DismissViewController (true, null); if (!e.IsAuthenticated) { facebookStatus.Caption = "Not authorized"; dialog.ReloadData(); return; } String accessToken = String.Empty; e.Account.Properties.TryGetValue("access_token", out accessToken); var request = new OAuth2Request ("GET", new Uri ("https://graph.facebook.com/me"), null, e.Account); request.GetResponseAsync().ContinueWith (t => { if (t.IsFaulted) facebookStatus.Caption = "Error: " + t.Exception.InnerException.Message; else if (t.IsCanceled) facebookStatus.Caption = "Canceled"; else { //Parse Json result var obj = JsonValue.Parse (t.Result.GetResponseText()); facebookStatus.Caption = "Logged in as " + obj["name"]; } dialog.ReloadData(); }, uiScheduler); }
private async Task ValidateGoogleAccessToken(Account account) { // $access_token = google_get_user_token($user_id); // get existing token from DB //$redirecturl = $Google_Permissions->redirecturl; //$client_id = $Google_Permissions->client_id; //$client_secret = $Google_Permissions->client_secret; //$redirect_uri = $Google_Permissions->redirect_uri; //$max_results = $Google_Permissions->max_results; //$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='.$access_token; //$response_contacts = curl_get_responce_contents($url); //$response = (json_decode($response_contacts)); // if (isset($response->issued_to)) // { // return true; // } // else if (isset($response->error)) // { // return false; // } var req = new OAuth2Request("GET", new Uri("https://www.googleapis.com/oauth2/v1/tokeninfo"), null, account); var resp = await req.GetResponseAsync(); var obj = JObject.Parse(resp.GetResponseText()); }
public FBLoginPageRenderer() { var activity = this.Context as Activity; var auth = new OAuth2Authenticator( clientId: "166185944004110", scope: "", authorizeUrl: new Uri("https://m.facebook.com/dialog/oauth/"), redirectUrl: new Uri("http://www.facebook.com/connect/login_success.html")); auth.Completed += async(sender, eventArgs) => { if (eventArgs.IsAuthenticated) { var accessToken = eventArgs.Account.Properties["access_token"].ToString(); var expiresIn = Convert.ToDouble(eventArgs.Account.Properties["expires_in"]); var expiryDate = DateTime.Now + TimeSpan.FromSeconds(expiresIn); var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me"), null, eventArgs.Account); var response = await request.GetResponseAsync(); var obj = JObject.Parse(response.GetResponseText()); var id = obj["id"].ToString().Replace("\"", ""); var name = obj["name"].ToString().Replace("\"", ""); await App.NavigateToProfile(string.Format("Olá {0}, seja bem-vindo", name)); } else { await App.NavigateToProfile("O usuário Cancelou o login"); } }; activity.StartActivity(auth.GetUI(activity)); }
protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); //var activity = this.Context as Activity; //var activity = this.Context as Activity; if (showLogin && FacebookAuth.User == null) { showLogin = false; var auth = FacebookAuth.FacebookAuthByClientId(); auth.Completed += async(sender, eventArgs) => { DismissViewController(true, null); if (eventArgs.IsAuthenticated) { var request = new OAuth2Request("GET", new Uri("https://" + "graph.facebook.com/me?fields=name,picture,cover," + "birthday"), null, eventArgs.Account); var fbResponse = await request.GetResponseAsync(); FacebookAuth.User = JsonConvert.DeserializeObject <UserFacebook> (fbResponse.GetResponseText()); FacebookAuth.SuccessfullLoginAction.Invoke(); } else { } }; PresentViewController(auth.GetUI(), true, null); } }
async void OnAuthCompleted(object sender, AuthenticatorCompletedEventArgs e) { var authenticator = sender as OAuth2Authenticator; if (authenticator != null) { authenticator.Completed -= OnAuthCompleted; authenticator.Error -= OnAuthError; } User user = null; if (e.IsAuthenticated) { //UserInfo = https://www.googleapis,com/oaurh2/v2/userinfo var request = new OAuth2Request("GET", new Uri(Constants.UserInfoUrl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { string userJson = await response.GetResponseTextAsync(); user = JsonConvert.DeserializeObject <User>(userJson); } if (account != null) { store.Delete(account, Constants.AppName); } await store.SaveAsync(account = e.Account, Constants.AppName); await DisplayAlert("Email address", user.Email, "OK"); } }
public async Task GetFacebookData() { var request = new OAuth2Request("GET", new Uri(Constants.FacebookProfileInfoURL), null, loggedInAccount); await request.GetResponseAsync().ContinueWith(t => { if (t.IsFaulted) { Console.WriteLine("Error: " + t.Exception.InnerException.Message); } else { var res = t.Result; var resString = res.GetResponseText(); var jo = Newtonsoft.Json.Linq.JObject.Parse(resString); string socialId = (string)jo["id"]; string name = (string)jo["first_name"] + " " + (string)jo["last_name"]; string email = (string)jo["email"]; string pictureUrl = (string)jo["picture"]["data"]["url"]; string socialName = email; App.Instance.User = new User(socialId, name, socialName, email, pictureUrl, "Facebook"); } }); }
public override async Task <User> GetUserInfoAsync(Account account) { User user = null; string token = account.Properties["access_token"]; string refreshToke = account.Properties["refresh_token"]; int.TryParse(account.Properties["expires_in"], out int expriesIn); var request = new OAuth2Request("GET", UserInfoUri, null, account); var response = await request.GetResponseAsync(); if (response != null && response.StatusCode == HttpStatusCode.OK) { string userJson = await response.GetResponseTextAsync(); var kakaoUser = JsonConvert.DeserializeObject <KakaoUser>(userJson); user = new User { Id = kakaoUser.Id, Token = token, RefreshToken = refreshToke, Name = kakaoUser.Properties.NickName, Email = kakaoUser.Email, ExpiresIn = DateTime.UtcNow.Add(new TimeSpan(expriesIn)), PictureUrl = kakaoUser.Properties.ProfileImage, Provider = SNSProvider.Kakao, LoggedInWithSNSAccount = true, }; } return(user); }
public override async Task <SocialUser> GetUserInfoAsync(Account account) { SocialUser user = null; string token = account.Properties["access_token"]; string refreshToke = account.Properties["refresh_token"]; int expriesIn; int.TryParse(account.Properties["expires_in"], out expriesIn); Dictionary <string, string> dictionary = new Dictionary <string, string> { { "Authorization", token } }; var request = new OAuth2Request("POST", UserInfoUri, dictionary, account); var response = await request.GetResponseAsync(); if (response != null && response.StatusCode == HttpStatusCode.OK) { string userJson = await response.GetResponseTextAsync(); var lineUser = JsonConvert.DeserializeObject <LineUser>(userJson); user = new SocialUser { SocialId = lineUser.Id, Token = token, RefreshToken = refreshToke, Name = lineUser.Name, ExpiresIn = DateTime.UtcNow.Add(new TimeSpan(expriesIn)), PictureUrl = lineUser.ProfileImage, Provider = SocialProvider.Line, LoggedInWithSocialAccount = true, }; } return(user); }
// Obtem dados do usuário private async Task <User> GetFacebookUserInfo(Account account) { var request = new OAuth2Request("GET", new Uri(Constants.FacebookUserInfoUrl), null, account); var response = await request.GetResponseAsync(); if (response == null) { return(null); } var obj = JObject.Parse(response.GetResponseText()); User user = new User { Id = obj["id"].ToString().Replace("\"", ""), Name = obj["name"].ToString().Replace("\"", "") }; user.Picture = "https://graph.facebook.com/" + user.Id + "/picture"; // email não pode ser vazio if (obj["email"] != null) { user.Email = obj["email"].ToString().Replace("\"", ""); } else { user.Email = user.Id + "@Facebook"; } return(user); }
void GoogleAuthentcation(string id, string scope, string authurl, string redirecturl, string requesturl) { var auth = new OAuth2Authenticator(id, scope, new Uri(authurl), new Uri(redirecturl)); //если пользователь захочет отменить аутентификацию auth.AllowCancel = true; StartActivity(auth.GetUI(this)); auth.Completed += async (sender, req) => { //если аутентификация не удалась if (!req.IsAuthenticated) { //всплывает окошко с сообщением об ошибке Toast.MakeText(this, Constants.AUTH_ERROR, ToastLength.Short).Show(); return; } //запрос к получению параметров var request = new OAuth2Request("GET", new Uri(requesturl), null, req.Account); //ответ на запрос var response = await request.GetResponseAsync(); //если ответ получен if (response != null) { var UserData = response.GetResponseText(); } //если ответ НЕ получен else { Toast.MakeText(this, Constants.AUTH_ERROR, ToastLength.Short).Show(); } }; }
async void LinkedInAuth_Completed(object sender, AuthenticatorCompletedEventArgs e) { if (e.IsAuthenticated) { var request = new OAuth2Request( "GET", new Uri("https://api.linkedin.com/v1/people/~:(id,firstName,lastName,headline,picture-url,summary,educations,three-current-positions,honors-awards,site-standard-profile-request,location,api-standard-profile-request,phone-numbers)?" + "format=json" + "&oauth2_access_token=" + e.Account.Properties["access_token"]), null, e.Account); var linkedInResponse = await request.GetResponseAsync(); var json = linkedInResponse.GetResponseText(); var linkedInUser = JsonValue.Parse(json); var name = linkedInUser["firstName"] + " " + linkedInUser["lastName"]; var id = linkedInUser["id"]; var description = linkedInUser["headline"]; var picture = linkedInUser["pictureUrl"]; LblName.Text += name; //IdLabel.Text += id; LblDescription.Text = description; ImgVUser.Image = UIImage.LoadFromData(NSData.FromUrl(new NSUrl(picture))); } DismissViewController(true, null); }
private async void GoogleAuth_Completed(object sender, AuthenticatorCompletedEventArgs e) { // We presented the UI, so it's up to us to dimiss it on iOS. DismissViewController(true, null); if (e.IsAuthenticated) { var account = e.Account; var request = new OAuth2Request("GET", new Uri(UserInfoUrl), null, account); var response = await request.GetResponseAsync(); if (response != null) { string userJson = response.GetResponseText(); var user = JsonConvert.DeserializeObject <UserDetailsGoogleDto>(userJson); LblName.Text = user.Name; //IdLabel.Text += id; LblDescription.Text = user.Email; ImgVUser.Image = UIImage.LoadFromData(NSData.FromUrl(new NSUrl(user.Picture))); } } else { // The user cancelled } }
async void OnAuthCompleted(object sender, AuthenticatorCompletedEventArgs e) { var authenticator = sender as OAuth2Authenticator; if (authenticator != null) { authenticator.Completed -= OnAuthCompleted; authenticator.Error -= OnAuthError; } User user = null; if (e.IsAuthenticated) { // If the user is authenticated, request their basic user data from Google // UserInfoUrl = https://www.googleapis.com/oauth2/v2/userinfo var request = new OAuth2Request("GET", new Uri(AppConstant.Constants.UserInfoUrl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { // Deserialize the data and store it in the account store // The users email address will be used to identify data in SimpleDB string userJson = await response.GetResponseTextAsync(); user = JsonConvert.DeserializeObject <User>(userJson); } //await store.SaveAsync(account = e.Account, AppConstant.Constants.AppName); await DisplayAlert("Email address", user.Email, "OK"); } }
public FacebookLogin(Context context) : base(context) { var activity = this.Context as Activity; var auth = new OAuth2Authenticator( clientId: "456228191618171", scope: "", authorizeUrl: new Uri("https://m.facebook.com/dialog/oauth/"), redirectUrl: new Uri("https://www.facebook.com/connect/login_success.html")); auth.Completed += async(sender, eventArgs) => { if (eventArgs.IsAuthenticated) { var accessToken = eventArgs.Account.Properties["access_token"].ToString(); var expiresIn = Convert.ToDouble(eventArgs.Account.Properties["expires_in"]); var expiryDate = DateTime.Now + TimeSpan.FromSeconds(expiresIn); var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me"), null, eventArgs.Account); var response = await request.GetResponseAsync(); var obj = JObject.Parse(response.GetResponseText()); var id = obj["id"].ToString().Replace("\"", ""); var name = obj["name"].ToString().Replace("\"", ""); } else { } }; activity.StartActivity(auth.GetUI(activity)); }
private async void Authenticator_Completed(object sender, AuthenticatorCompletedEventArgs e) { if (e.IsAuthenticated) { AccountStore.Create(Android.App.Application.Context, "briefingPassword").Save(e.Account, "com.companyname.Briefing"); exceptionString = e.Account.Properties["refresh_token"]; currentAccount = e.Account; var request = new OAuth2Request("GET", new Uri("https://www.googleapis.com/oauth2/v2/userinfo"), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { string userJson = response.GetResponseText(); //exceptionString = userJson; } else { exceptionString = ""; } } else { exceptionString = "NOT AUTH"; } }
//private async Task<bool> CheckIfTokenExpiredAsync() //{ // try // { // var account = AccountStore.Create().FindAccountsForService(Constants.AppName).FirstOrDefault(); // var request = new OAuth2Request("GET", new Uri(Constants.tokenInfoUrl), null, account); // var response = await request.GetResponseAsync(); // var text = response.GetResponseText(); // var json = JObject.Parse(text); // double expiry = (double)json["expires_in"]; // if (expiry > 10) // return false; // else // return true; // } // catch // { // } // return true; //} private async Task GetProfileDetails() { try { var account = AccountStore.Create().FindAccountsForService(Constants.AppName).FirstOrDefault(); if (account == null) { return; } var request = new OAuth2Request("GET", new Uri(Constants.UserInfoUrl), null, account); var response = await request.GetResponseAsync(); var text = response.GetResponseText(); var json = JObject.Parse(text); lblName.Text = "Name: " + (string)json["name"]; lblEmail.Text = "Email: " + (string)json["email"]; var imageRequest = new OAuth2Request("GET", new Uri((string)json["picture"]), null, account); var stream = await(await imageRequest.GetResponseAsync()).GetResponseStreamAsync(); imgPRofile.Source = ImageSource.FromStream(() => stream); } catch { await DisplayAlert("Error", "An errror occured while fetching user details", "OK"); } }
async Task GetUserProfile(Account account, string token, DateTimeOffset expireAt) { var result = new LoginResult { Token = token, ExpireAt = expireAt }; var request = new OAuth2Request("GET", new Uri("https://apis.live.net/v5.0/me"), null, account); var response = await request.GetResponseAsync(); if (response != null && response.StatusCode == HttpStatusCode.OK) { var userJson = response.GetResponseText(); var jobject = JObject.Parse(userJson); result.LoginState = LoginState.Success; result.Email = jobject["emails"]?["preferred"].ToString(); result.FirstName = jobject["first_name"]?.ToString(); result.LastName = jobject["last_name"]?.ToString(); result.ImageUrl = jobject["picture"]?["data"]?["url"]?.ToString(); var userId = jobject["id"]?.ToString(); result.UserId = userId; result.ImageUrl = $"https://apis.live.net/v5.0/{userId}/picture"; } else { result.LoginState = LoginState.Failed; result.ErrorString = $"Error: Responce={response}, StatusCode = {response?.StatusCode}"; } SetResult(result); }
public async Task <Customer> GetCustomerInfo(Account account) { UserDialogs.Instance.ShowLoading("Getting customer info"); // If the user is authenticated, request their basic user data from Google var request = new OAuth2Request("GET", new Uri(Constants.UserInfoUrl), null, account); try{ var response = await request.GetResponseAsync(); if (response != null) { // Deserialize the data and store it in the account store string userJson = response.GetResponseText(); CustomerGoogleDto googleCustomer = JsonConvert.DeserializeObject <CustomerGoogleDto>(userJson, jsonSetting); return(new Customer { FamilyName = googleCustomer.FamilyName, GivenName = googleCustomer.GivenName, Email = googleCustomer.Email, }); } else { UserDialogs.Instance.ShowError("Failed to get customer info"); } }catch (Exception e) { UserDialogs.Instance.ShowError("Failed to get customer info"); Debug.WriteLine(e); } return(null); }
private async Task <string> GetMessageSenderMessageType(int messageId, Account acc) { try { this.StartRequest(); var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/messages.getById"), null, acc); request.Parameters.Add("message_ids", messageId.ToString()); request.Parameters.Add("preview_length", "0"); request.Parameters.Add("v", "5.37"); var res1 = await request.GetResponseAsync(); var responseText = res1.GetResponseText(); var response = JsonConvert.DeserializeObject <XamarinSocialApp.Droid.Data.VkData.VkMessageByIdResponse>(responseText); return(response.Response.Messages.First().Out); } catch (Exception ex) { } finally { this.StopRequest(); } return(String.Empty); }
async void OnAuthenticationCompleted(object sender, AuthenticatorCompletedEventArgs e) { if (e.IsAuthenticated) { // If the user is authenticated, request their basic user data from Google // UserInfoUrl = https://www.googleapis.com/oauth2/v2/userinfo var request = new OAuth2Request("GET", new Uri(EventbriteConstants.UserInfoUrl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { // Deserialize the data and store it in the account store // The users email address will be used to identify data in SimpleDB string userJson = response.GetResponseText(); App.User = JsonConvert.DeserializeObject <User>(userJson); e.Account.Username = App.User.Email; AccountStore.Create().Save(e.Account, App.AppName); } } // If the user is logged in navigate to the TodoList page. // Otherwise allow another login attempt. //App.SuccessfulLoginAction.Invoke(); //MessagingCenter.Send((AuthenticationPage)Element, "UserAuthenticated", string.Empty); ((AuthenticationPageModel)((AuthenticationPage)Element).GetModel()).LoggedCommand.Execute(string.Empty); }
private static async Task <IEnumerable <DataIUser> > GetUserVkFriends(DataIUser user) { IList <DataIUser> friends = new List <DataIUser>(); try { Account acc = Account.Deserialize(user.SerializeInfo.ToString()); var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/friends.get"), null, acc); request.Parameters.Add("fields", "nickname,photo_200"); request.Parameters.Add("order", "hints"); var res = await request.GetResponseAsync(); var responseText = res.GetResponseText(); var listFriendsIds = JsonConvert.DeserializeObject <XamarinSocialApp.Droid.Data.VkData.VkUsers>(responseText); foreach (var friend in listFriendsIds.response) { friends.Add(new DataUser() { UserPhoto = friend.photo_200, FirstName = friend.first_name, LastName = friend.last_name, SerializeInfo = user.SerializeInfo, Uid = friend.uid }); } } catch (Exception) { } return(friends); }
//API request to get Profile Information from Facebook public async Task <bool> RequestLoginData(Account account) { bool bAuth = false; var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?fields=id,name,email"), null, account); var response = await request.GetResponseAsync(); var obj = JObject.Parse(response.GetResponseText()); string token = account.Properties["access_token"].ToString(); var expiresIn = Convert.ToDouble(account.Properties["expires_in"]); DateTime dtExpiry = DateTime.Now + TimeSpan.FromSeconds(expiresIn); string idAut = obj["id"].ToString().Replace("\"", ""); string nome = obj["name"].ToString().Replace("\"", ""); string email = string.Empty; if (obj["email"] != null) { email = obj["email"].ToString().Replace("\"", ""); } //envia mensagem para tela de login, informando se usuário autenticou-se MessagingCenter.Send <Application, bool>(App.Current, "Authentication", bAuth); return(true); }
public FacebookRenderDroid() { var activity = this.Context as Activity; var auth = new OAuth2Authenticator( clientId: "1656022791365456", scope: "public_profile,email,user_location,user_religion_politics", authorizeUrl: new Uri("https://m.facebook.com/dialog/oauth/"), redirectUrl: new Uri("http://www.facebook.com/connect/login_success.html")); App.HideLoginView(); auth.Completed += async(sender, ee) => { if (ee.IsAuthenticated) { var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?fields=political,location,hometown,email,birthday,first_name,last_name,gender,picture"), null, ee.Account); var response = await request.GetResponseAsync(); App.LoginFacebook(response.GetResponseText(), ee.Account.Properties["access_token"], DateTime.Now + TimeSpan.FromSeconds(Convert.ToDouble(ee.Account.Properties["expires_in"]))); //App.NavigateToProfile(); } else { App.NavigateToProfile(); } }; Context.StartActivity(auth.GetUI(Context)); }
private async void Auth_Completed(object sender, AuthenticatorCompletedEventArgs e) { if (e.IsAuthenticated) { var request = new OAuth2Request( "GET", new Uri("https://graph.facebook.com/me?fields=name"), null, e.Account); var fbResponse = await request.GetResponseAsync(); var fbUser = JsonValue.Parse(fbResponse.GetResponseText()); var name = fbUser["name"]; var id = fbUser["id"]; if (!(IsExistingUser(id))) { SaveUserLocally(id, name); } AddUserToDB(id, name); } DismissViewController(true, null); }
public OAuth2Request ToOAuth2Request(ISalesforceUser user) { if (!(Resource is SObject)) { throw new InvalidOperationException("Only SObjects can have changes. Searches and Queries not elibible."); } if (Since > Until) { throw new InvalidOperationException("Since must preceed Until."); } // var path = user.Properties ["instance_url"] + SalesforceClient.RestApiPath; // var baseUri = new Uri (path); // var queryString = String.Format("?start={0:O}&end={1:O}", Since.ToUniversalTime(), Until.ToUniversalTime()); // var changesPath = Path.Combine(Resource.AbsoluteUri.AbsolutePath, ChangeType.ToString(), queryString); // var changesUri = new Uri(changesPath); // var uri = new Uri (baseUri, changesUri); var path = user.Properties ["instance_url"] + SalesforceClient.RestApiPath; var baseUri = new Uri(path); var uri = new UriBuilder(new Uri(baseUri, Resource.AbsoluteUri)); // Custom ISO format: var since = Since.ToUniversalTime(); var sinceString = String.Format("{0}T{1}Z", since.ToString("yyyy-MM-dd"), since.ToString("HH:mm:ss")); var until = Until.ToUniversalTime(); var untilString = String.Format("{0}T{1}Z", until.ToString("yyyy-MM-dd"), until.ToString("HH:mm:ss")); uri.Query = String.Format("start={0}&end={1}", sinceString, untilString); var oauthRequest = new OAuth2Request(Method, uri.Uri, Resource.Options.Where(kvp => kvp.Value.JsonType == JsonType.String).ToDictionary(k => k.Key, v => (string)v.Value), user); return(oauthRequest); }
public IOAuth2Request CreateRequest(string method, string accessTokenParameterName, Uri url, IDictionary <string, string> parameters, IAccount account) { var request = new OAuth2Request(method, url, parameters, new Account(account.Username, account.Properties, account.Cookies)); request.AccessTokenParameterName = accessTokenParameterName; return(new PlatformOAuth2Request(request)); }
async void OnGoogleAuthCompleted(object sender, AuthenticatorCompletedEventArgs e) { var authenticator = sender as OAuth2Authenticator; if (authenticator != null) { authenticator.Completed -= OnGoogleAuthCompleted; authenticator.Error -= OnGoogleAuthError; } if (e.IsAuthenticated) { // var request = new OAuth2Request("GET", new Uri(Constants.GoogleAPI.UserInfoUrl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { string userJson = await response.GetResponseTextAsync(); GoogleUser user = JsonConvert.DeserializeObject <GoogleUser>(userJson); viewModel.SocialLogin(user); } else { await Shell.Current.DisplayAlert("", "Không thể kết nối đến Google !", "Đóng"); } } else { //await accountPage.DisplayAlert("", "Không thể kết nối đến Google .", "Đóng"); } await Task.Delay(2000); }
async void GetProfileButtonClicked(object sender, EventArgs e) { try { var request = new OAuth2Request("GET", ServerInfo.ApiEndpoint, null, account); var response = await request.GetResponseAsync(); var text = response.GetResponseText(); var json = JObject.Parse(text); var name = (string)json["Name"]; var email = (string)json["Email"]; var imageUrl = (string)json["ImageUrl"]; nameText.Text = name; emailText.Text = email; var imageRequest = new OAuth2Request("GET", new Uri(imageUrl), null, account); var stream = await(await imageRequest.GetResponseAsync()).GetResponseStreamAsync(); profileImage.Source = ImageSource.FromStream(() => stream); statusText.Text = "Get data succeeded"; } catch (Exception x) { getProfileButton.IsEnabled = false; statusText.Text = "Get data failure: " + x.Message + "\r\nHas the access token expired?"; } }
async void OnAuthCompleted(object sender, AuthenticatorCompletedEventArgs e) { var authenticator = sender as OAuth2Authenticator; GoogleUserInfo user = null; if (authenticator != null) { authenticator.Completed -= OnAuthCompleted; authenticator.Error -= OnAuthError; } if (e.IsAuthenticated) { // If the user is authenticated, request their basic user data from Google var request = new OAuth2Request("GET", new Uri(Constants.UserInfoUrl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { // Deserialize the data and store it in the account store // The users email address will be used to identify data in SimpleDB string userJson = await response.GetResponseTextAsync(); //await DisplayAlert("JSON", userJson, "OK"); debug user = JsonConvert.DeserializeObject <GoogleUserInfo>(userJson); } if (account != null) { store.Delete(account, Constants.AppName); } CreateAccountGoogleAuth(user); } }
public async Task CompleteAccountInformation(Account account) { // Calculate the absolute expiration date DateTime expiresOn = DateTime.Now.AddSeconds(int.Parse(account.Properties[FacebookAccountProperties.ExpiresIn])); account.Properties[FacebookAccountProperties.ExpiresOn] = expiresOn.ToFileTimeUtc().ToString(); // Pull the remaining information from the server var request = new OAuth2Request( RequestGet, WebUriBuilder(GraphApiUrl, ApiVersion, GraphApiNodeMe), new Dictionary <string, string> { { RequestParameterFields, "id,name,email" } }, account ); var response = await request.GetResponseAsync(); if (response != null) { var accountInformation = JsonConvert.DeserializeObject <FacebookAccountInformation>(response.GetResponseText()); account.Properties[FacebookAccountProperties.Id] = accountInformation.id; account.Properties[FacebookAccountProperties.Name] = accountInformation.name; account.Properties[FacebookAccountProperties.EMail] = accountInformation.email; } else { throw new AuthException("Could not pull the remaining information from the Facebook server"); } }
void Authentcation(string id, string scope, string authurl, string redirecturl, string requesturl) { var auth = new OAuth2Authenticator(id, scope, new Uri(authurl), new Uri(redirecturl)); auth.AllowCancel = true; StartActivity(auth.GetUI(this)); auth.Completed += async(sender, e) => { if (!e.IsAuthenticated) { Toast.MakeText(this, Constants.FAIL_AUTH, ToastLength.Short).Show(); return; } progressDialog = ProgressDialog.Show(this, Constants.WAIT, Constants.CHECKING_INFO, true); var request = new OAuth2Request(Constants.REST_TYPE, new Uri(requesturl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { progressDialog.Hide(); var userJson = response.GetResponseText(); StoringDataIntoCache(userJson); } }; }
void LoginToFacebook (bool allowCancel) { var auth = new OAuth2Authenticator ( clientId: "App ID from https://developers.facebook.com/apps", scope: "", authorizeUrl: new Uri ("https://m.facebook.com/dialog/oauth/"), redirectUrl: new Uri ("http://www.facebook.com/connect/login_success.html")); auth.AllowCancel = allowCancel; // If authorization succeeds or is canceled, .Completed will be fired. auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { var builder = new AlertDialog.Builder (this); builder.SetMessage ("Not Authenticated"); builder.SetPositiveButton ("Ok", (o, e) => { }); builder.Create().Show(); return; } // Now that we're logged in, make a OAuth2 request to get the user's info. var request = new OAuth2Request ("GET", new Uri ("https://graph.facebook.com/me"), null, ee.Account); request.GetResponseAsync().ContinueWith (t => { var builder = new AlertDialog.Builder (this); if (t.IsFaulted) { builder.SetTitle ("Error"); builder.SetMessage (t.Exception.Flatten().InnerException.ToString()); } else if (t.IsCanceled) builder.SetTitle ("Task Canceled"); else { var obj = JsonValue.Parse (t.Result.GetResponseText()); builder.SetTitle ("Logged in"); builder.SetMessage ("Name: " + obj["name"]); } builder.SetPositiveButton ("Ok", (o, e) => { }); builder.Create().Show(); }, UIScheduler); }; var intent = auth.GetUI (this); StartActivity (intent); }
void LoginToFacebook (bool allowCancel) { var auth = new OAuth2Authenticator ( clientId: "App ID from https://developers.facebook.com/apps", scope: "", authorizeUrl: new Uri ("https://m.facebook.com/dialog/oauth/"), redirectUrl: new Uri ("http://www.facebook.com/connect/login_success.html")); auth.AllowCancel = allowCancel; // If authorization succeeds or is canceled, .Completed will be fired. auth.Completed += (s, e) => { // We presented the UI, so it's up to us to dismiss it. dialog.DismissViewController (true, null); if (!e.IsAuthenticated) { facebookStatus.Caption = "Not authorized"; dialog.ReloadData(); return; } // Now that we're logged in, make a OAuth2 request to get the user's info. var request = new OAuth2Request ("GET", new Uri ("https://graph.facebook.com/me"), null, e.Account); request.GetResponseAsync().ContinueWith (t => { if (t.IsFaulted) facebookStatus.Caption = "Error: " + t.Exception.InnerException.Message; else if (t.IsCanceled) facebookStatus.Caption = "Canceled"; else { var obj = JsonValue.Parse (t.Result.GetResponseText()); facebookStatus.Caption = "Logged in as " + obj["name"]; } dialog.ReloadData(); }, uiScheduler); }; UIViewController vc = auth.GetUI (); dialog.PresentViewController (vc, true, null); }
void LoginToVk (bool allowCancel) { var auth = new OAuth2Authenticator ( clientId: "5042701", scope: "messages", authorizeUrl: new Uri("https://oauth.vk.com/authorize"), redirectUrl: new Uri("https://oauth.vk.com/blank.html")); auth.AllowCancel = allowCancel; // If authorization succeeds or is canceled, .Completed will be fired. auth.Completed += (s, ee) => { if (!ee.IsAuthenticated) { var builder = new AlertDialog.Builder (this); builder.SetMessage ("Not Authenticated"); builder.SetPositiveButton ("Ok", (o, e) => { }); builder.Create().Show(); return; } // Now that we're logged in, make a OAuth2 request to get the user's info. var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/users.get"), null, ee.Account); request.GetResponseAsync().ContinueWith (t => { if (t.IsCompleted) { Token = ee.Account.Properties["access_token"].ToString(); Account = ee.Account; var response = t.Result.GetResponseText(); var users = JsonConvert.DeserializeObject<VkUsers>(response); string uid = users.response[0].uid; string firstName = users.response[0].first_name; string lastName = users.response[0].last_name; new AlertDialog.Builder(this).SetPositiveButton("Ok", (o, e) => { }) .SetMessage("You logged in succesfully!") .SetTitle("TalkManager") .Show(); } else { var builder = new AlertDialog.Builder(this); builder.SetMessage("Not Authenticated"); builder.SetPositiveButton("Ok", (o, e) => { }); builder.Create().Show(); return; } }, UIScheduler); }; var intent = auth.GetUI (this); StartActivity (intent); }
private void FacebookPost(Account facebookAccount, string message, string clientID, string link) { var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?"), null, facebookAccount); request.GetResponseAsync().ContinueWith(t => { InvokeOnMainThread(() => { if (t.IsFaulted) { FacebookLoginPost(clientID, message, link); } else { // 1. Create the service var facebook = new FacebookService { ClientId = clientID, }; facebook.SaveAccount(facebookAccount); // 2. Create an item to share var item = new Item(); item.Text = message; if (!String.IsNullOrEmpty(link) ) { item.Links.Add(new Uri(link)); } // 3. Present the UI on iOS UIViewController cur_ViewController=(auth_ViewController==null?c_ViewController:auth_ViewController); var shareController = facebook.GetShareUI(item, result => { new UIAlertView ("Result",result.ToString(), null, "Ok").Show (); c_ViewController.DismissViewController(true,null); }); cur_ViewController.PresentViewController(shareController, true, null); } }); }); }
private void FacebookPost(Account facebookAccount, string message, string clientID, string link) { var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me"), null, facebookAccount); request.GetResponseAsync().ContinueWith(t => { if (t.IsFaulted) { Console.WriteLine("Error: " + t.Exception.InnerException.Message); FacebookLoginPost(clientID, message, link); } else { // 1. Create the service var facebook = new FacebookService { ClientId = clientID, }; facebook.SaveAccount(facebookAccount); // 2. Create an item to share var item = new Item(); item.Text = message; if (link != null) { item.Links.Add(new Uri(link)); } // 3. Present the UI on iOS InvokeOnMainThread(() => { var shareController = facebook.GetShareUI(item, result => { UIApplication.SharedApplication.KeyWindow.RootViewController.DismissViewController(true, null); }); UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(shareController, true, null); }); } }); }
private void FacebookPost(Account facebookAccount, string message, string clientID, string link) { var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me"), null, facebookAccount); request.GetResponseAsync().ContinueWith(t => { if (t.IsFaulted) { Console.WriteLine("Error: " + t.Exception.InnerException.Message); FacebookLoginPost(clientID, message, link); } else { // 1. Create the service var facebook = new FacebookService { ClientId = clientID }; facebook.SaveAccount(Forms.Context, facebookAccount); // 2. Create an item to share var item = new Item(); item.Text = message; if (link != null) { item.Links.Add(new Uri(link)); } Device.BeginInvokeOnMainThread(() => { // 3. Present the UI on iOS var shareIntent = facebook.GetShareUI((Activity)Forms.Context, item, result => { // result lets you know if the user shared the item or canceled }); Forms.Context.StartActivity(shareIntent); }); } }); }
async Task<OAuth2Request> GetDialogs() { var request = new OAuth2Request("GET", new Uri("https://api.vk.com/method/messages.getDialogs"), null, Account); request.Parameters.Add("count", "1"); request.Parameters.Add("access_token", Token); request.Parameters.Add("v", "5.37"); var res = await request.GetResponseAsync(); var responseText = res.GetResponseText(); var msg = JsonConvert.DeserializeObject<VkMessagesResponse>(responseText); string message = msg.Response.Messages.First().Message.Body; return null; }
private void VkontakteAuthorizationCompleted(object sender, AuthenticatorCompletedEventArgs e) { dialog.DismissViewController (true, null); if (!e.IsAuthenticated) { vkontakteStatus.Caption = "Not authorized"; dialog.ReloadData(); return; } String accessToken = String.Empty; e.Account.Properties.TryGetValue("access_token", out accessToken); String userId = String.Empty; e.Account.Properties.TryGetValue("user_id", out userId); String uri = String.Format("https://api.vk.com/method/users.get?uid={0}&access_token={1}", userId, accessToken); var request = new OAuth2Request ("GET", new Uri (uri), null, e.Account); request.GetResponseAsync().ContinueWith (t => { if (t.IsFaulted) vkontakteStatus.Caption = "Error: " + t.Exception.InnerException.Message; else if (t.IsCanceled) vkontakteStatus.Caption = "Canceled"; else { //Parse Json result var obj = JsonObject.Parse (t.Result.GetResponseText()); var resp = obj["response"] as JsonArray; vkontakteStatus.Caption = "Logged in as " + resp.FirstOrDefault()["first_name"]; } dialog.ReloadData(); }, uiScheduler); }