public static void Handler(LoginManagerLoginResult result, NSError error, ISocialAuth interactor, LoginManager loginManager) { _loginManager = loginManager; _interactor = interactor; if (error != null) { _interactor.OnError(error.LocalizedDescription, ESocialType.Facebook); } else if (result.IsCancelled) { _interactor.OnCancel(ESocialType.Facebook); _loginManager.LogOut(); var r = new Facebook.CoreKit.GraphRequest("me/permissions", null, "DELETE"); r.Start((connection, result1, error1) => { Console.WriteLine("GraphRequest"); }); } else { var token = result.Token.TokenString; _interactor.OnSuccess(token, ESocialType.Facebook); } }
void LoginManagerLoginHandler(LoginManagerLoginResult result, NSError error) { if (result.IsCancelled) { completionSource.TrySetResult(new FacebookLoginResult { LoginState = FacebookLoginState.Canceled }); } else if (error != null) { completionSource.TrySetResult(new FacebookLoginResult { LoginState = FacebookLoginState.Failed, ErrorString = error.LocalizedDescription }); } else { loginResult = new FacebookLoginResult { Token = result.Token.TokenString, UserId = result.Token.UserID, ExpireAt = result.Token.ExpirationDate.ToDateTime() }; var request = new GraphRequest(@"me", new NSDictionary(@"fields", @"email")); request.Start(GetEmailRequestHandler); } }
void LoginHandler(LoginManagerLoginResult loginResult, NSError error) { if (loginResult.IsCancelled) { _facebookTask.TrySetResult(TryResult.Create(false, new SocialData { LoginState = SocialLoginStateEnum.Canceled })); } else if (error != null) { _facebookTask.TrySetResult(TryResult.Create(false, new SocialData { LoginState = SocialLoginStateEnum.Failed, ErrorString = error.LocalizedDescription })); } else { _socialData = new SocialData { Token = loginResult.Token.TokenString, UserId = loginResult.Token.UserId, ExpireAt = loginResult.Token.ExpirationDate.ToDateTimeUtc() }; _facebookTask.TrySetResult(TryResult.Create(true, _socialData)); } }
void LoginManagerLoginHandler(LoginManagerLoginResult result, NSError error) { if (result.IsCancelled) { _completionSource?.TrySetResult(new LoginResult { LoginState = LoginState.Canceled }); } else if (error != null) { _completionSource?.TrySetResult(new LoginResult { LoginState = LoginState.Failed, ErrorString = error.LocalizedDescription }); } else { _loginResult = new LoginResult { Token = result.Token.TokenString, UserId = result.Token.UserID, ExpireAt = result.Token.ExpirationDate.ToDateTime() }; var request = new GraphRequest(@"me", new NSDictionary(@"fields", @"email, first_name, last_name, picture.width(1000).height(1000)")); request.Start(GetEmailRequestHandler); } }
void LoginManagerLoginHandler(LoginManagerLoginResult result, NSError error) { if (result.IsCancelled) { _completionSource.TrySetResult(new LoginResult { LoginState = LoginState.Canceled }); } else if (error != null) { _completionSource.TrySetResult(new LoginResult { LoginState = LoginState.Failed, ErrorString = error.LocalizedDescription }); } else { _loginResult = new LoginResult { Token = result.Token.TokenString, UserId = result.Token.UserId, ExpireAt = result.Token.ExpirationDate.ToDateTime() }; } UIApplication.SharedApplication.OpenUrl(new NSUrl("http://www.facebook.com/looneyinvaders")); var request = new GraphRequest(@"101000795058301", new NSDictionary(@"fields", @"fan_count")); request.Start(GetLikesRequestHandler); }
private async void ProcessFacebookLogin() { LoginManagerLoginResult result = await loginManager.LogInWithReadPermissionsAsync(readPermissions.ToArray(), this); if (result.IsCancelled) { UserDialogs.Instance.Alert("User cancelled Facebook Login", "ThisRoof"); return; } if (result.GrantedPermissions != null && result.GrantedPermissions.Contains("email")) { string NAME = "name"; string ID = "id"; string EMAIL = "email"; string FIELDS = "fields"; string REQUEST_FIELDS = String.Join(",", new string[] { NAME, ID, EMAIL }); UserDialogs.Instance.ShowLoading(); var request = new GraphRequest("me", new NSDictionary(FIELDS, REQUEST_FIELDS), AccessToken.CurrentAccessToken.TokenString, null, "GET"); var requestConnection = new GraphRequestConnection(); requestConnection.AddRequest(request, (connection, graphResult, error) => { UserDialogs.Instance.HideLoading(); if (error != null || graphResult == null) { // Error Handler UserDialogs.Instance.Alert(String.Format("Facebook Login Error:{0}", error.Description), "ThisRoof"); } else { string email = (graphResult as NSDictionary) ["email"].ToString(); FBUserInfo userInfo = new FBUserInfo() { UserEmail = email, UserID = AccessToken.CurrentAccessToken.UserID, UserToken = AccessToken.CurrentAccessToken.TokenString }; ViewModelInstance.FacebookLoginCommand.Execute(userInfo); // after get user info we logout again. loginManager.LogOut(); } }); requestConnection.Start(); } else { UserDialogs.Instance.Alert("Email Permission is not allowed", "ThisRoof"); } }
private void LoginTokenHandler(LoginManagerLoginResult loginResult, NSError error) { if (loginResult.Token != null) { fbtcs.TrySetResult(loginResult.Token.TokenString); } else { fbtcs.TrySetException(new Exception("Facebook Client Flow Login Failed")); } }
// Handle actions once the user is logged in public void DidComplete(LoginButton loginButton, LoginManagerLoginResult result, NSError error) { if (error != null) { ShowMessageBox("Ups", error.Description, "Ok", null, null); return; } if (result.IsCancelled) { ShowMessageBox("Ups", "The user cancelled the request", "Ok", null, null); return; } }
void HandleLoginManagerRequestTokenHandler(LoginManagerLoginResult result, NSError error) { if (error != null) { //ShowMessageBox("Ups", error.Description, "Ok", null, null); ShowMessageBox(Constants.STR_LOGIN_FAIL_TITLE, Constants.STR_LOGIN_FAIL_MSG); return; } if (result.IsCancelled) { return; } LoginProcess(result.Token); }
public async Task <FacebookResponse <bool> > LoginAsync(string[] permissions, FacebookPermissionType permissionType = FacebookPermissionType.Read) { var retVal = IsLoginSessionActive; FacebookActionStatus status = FacebookActionStatus.Error; if (!HasPermissions(permissions)) { var window = UIApplication.SharedApplication.KeyWindow; var vc = window.RootViewController; while (vc.PresentedViewController != null) { vc = vc.PresentedViewController; } LoginManagerLoginResult result = await(permissionType == FacebookPermissionType.Read ? loginManager.LogInWithReadPermissionsAsync(permissions, vc) : loginManager.LogInWithPublishPermissionsAsync(permissions, vc)); if (result.IsCancelled) { retVal = false; status = FacebookActionStatus.Canceled; } else { retVal = HasPermissions(result.GrantedPermissions.Select(p => $"{p}").ToArray()); NSUserDefaults.StandardUserDefaults.SetString(result.Token.TokenString, FBAccessTokenKey); NSUserDefaults.StandardUserDefaults.SetValueForKey(result.Token.ExpirationDate, FBAccessTokenExpirationDateKey); NSUserDefaults.StandardUserDefaults.SetString(result.Token.UserId, FBUserIdKey); NSUserDefaults.StandardUserDefaults.Synchronize(); status = retVal ? FacebookActionStatus.Completed : FacebookActionStatus.Unauthorized; } } else { status = FacebookActionStatus.Completed; } var fbArgs = new FBEventArgs <bool>(retVal, status); OnLogin(this, fbArgs); pendingAction?.Execute(); pendingAction = null; return(new FacebookResponse <bool>(fbArgs)); }
private void FacebookLoginRequestHandler(LoginManagerLoginResult result, NSError error) { if (error != null) { //ShowMessageBox("Ups", error.Description, "Ok", null, null); ShowMessageBox("Login Failed", "The social network login failed for your account", "Ok", null, null); return; } if (result.IsCancelled) { return; } var userid = result.Token.UserID; FacebookLoggedIn(result.Token.UserID); }
private void HandleLogin(LoginManagerLoginResult result, NSError error) { if (error == null) { if (AccessToken.CurrentAccessToken != null) { facebookToken = AccessToken.CurrentAccessToken.TokenString; var credential = FacebookAuthProvider.GetCredential(AccessToken.CurrentAccessToken.TokenString); Auth.DefaultInstance.SignInWithCredential(credential, SignInOnCompletion); } } else { facebookToken = string.Empty; SetVerificationStatus(VerificationStatus.Failed, error.LocalizedDescription); } }
public async Task <FacebookResponse <bool> > LoginAsync(string[] permissions, FacebookPermissionType permissionType = FacebookPermissionType.Read) { var retVal = IsLoggedIn; FacebookActionStatus status = FacebookActionStatus.Error; if (!retVal || !HasPermissions(permissions)) { var window = UIApplication.SharedApplication.KeyWindow; var vc = window.RootViewController; while (vc.PresentedViewController != null) { vc = vc.PresentedViewController; } LoginManagerLoginResult result = await(permissionType == FacebookPermissionType.Read ? loginManager.LogInWithReadPermissionsAsync(permissions, vc) : loginManager.LogInWithPublishPermissionsAsync(permissions, vc)); if (result.IsCancelled) { retVal = false; status = FacebookActionStatus.Canceled; } else { //result.GrantedPermissions.h retVal = HasPermissions(result.GrantedPermissions.Select(p => $"{p}").ToArray()); status = retVal ? FacebookActionStatus.Completed : FacebookActionStatus.Unauthorized; } } else { status = FacebookActionStatus.Completed; } var fbArgs = new FBEventArgs <bool>(retVal, status); OnLogin(this, fbArgs); pendingAction?.Execute(); pendingAction = null; return(new FacebookResponse <bool>(fbArgs)); }
// Handle actions once the user is logged in public void DidComplete(LoginButton loginButton, LoginManagerLoginResult result, NSError error) { if (error != null) { // Handle if there was an error new UIAlertView("Login", error.Description, null, "Ok", null).Show(); return; } if (result.IsCancelled) { // Handle if the user cancelled the login request new UIAlertView("Login", "The user cancelled the login", null, "Ok", null).Show(); return; } // Handle your successful login new UIAlertView("Login", "Success!!", null, "Ok", null).Show(); }
public async Task <IAccessToken> LogIn(string[] permissions) { TaskCompletionSource <IAccessToken> tcs = new TaskCompletionSource <IAccessToken> (); var loginManager = new LoginManager(); loginManager.LoginBehavior = LoginBehavior.SystemAccount; LoginManagerLoginResult result = await loginManager.LogInWithReadPermissionsAsync(permissions, null); if (result.IsCancelled) { tcs.SetCanceled(); } else { tcs.SetResult(new iOSAccessToken(AccessToken.CurrentAccessToken)); } return(await tcs.Task); }
private async void LoginTokenHandler(LoginManagerLoginResult loginResult, NSError error) { if (loginResult.Token != null) { Debug.WriteLine($"Logged into Facebook, access_token: {loginResult.Token.TokenString}"); var token = new JObject(); token["access_token"] = loginResult.Token.TokenString; var user = await App.Instance.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook, token); Debug.WriteLine($"Logged into MobileService, user: {user.UserId}"); tcs.TrySetResult(user); } else { tcs.TrySetException(new Exception("Facebook login failed")); } }
private void OnLoginHandler(LoginManagerLoginResult result, NSError error) { if (error != null || result == null || result.IsCancelled) { if (result != null && result.IsCancelled) { OnLoginError?.Invoke(new Exception("Login Canceled.")); } if (error != null) { OnLoginError?.Invoke(new Exception(error.LocalizedDescription)); } } else { var request = new GraphRequest("me", new NSDictionary("fields", "id, first_name, email, last_name, picture.width(500).height(500)")); request.Start(OnRequestHandler); } }
private void LoginManagerLoginHandler(LoginManagerLoginResult result, NSError error) { if (result.IsCancelled) { _completionSource.TrySetResult(new LoginResult(LoginState.Canceled, null)); } else if (error != null) { _completionSource.TrySetResult(new LoginResult ( LoginState.Failed, null, error.LocalizedDescription )); } else { var request = new GraphRequest(@"me", null); request.Start(GetDetailsRequestHandler); } }
public void DidComplete(LoginButton loginButton, LoginManagerLoginResult result, NSError error) { if (error != null) { // Handle if there was an error AppDelegate.ShowMessage("Could not login!", error.Description, NavigationController); return; } if (result.IsCancelled) { // Handle if the user cancelled the login request AppDelegate.ShowMessage("Could not login!", "The user cancelled the login", NavigationController); return; } // Get access token for the signed-in user and exchange it for a Firebase credential var credential = FacebookAuthProvider.GetCredential(AccessToken.CurrentAccessToken.TokenString); // Authenticate with Firebase using the credential Auth.DefaultInstance.SignInWithCredential(credential, SignInOnCompletion); }
public void LoginRequestHandler(LoginManagerLoginResult result, NSError error) { if (error != null) { // Login Error ((MainViewController)this.MainViewController).UnblockUI(); } else if (result.IsCancelled) { // Login Cancelled ((MainViewController)this.MainViewController).UnblockUI(); } else { if (AccessToken.CurrentAccessToken == null) { return; } GetFacebookData(); } }
public override async void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); if (!isShown && (Element != null)) { isShown = true; FacebookLogin facebookLogin = (FacebookLogin)Element; #if USE_NATIVE_FACEBOOK_LOGIN try { var signedIn = verifyFacebookFromSerttings(); if (string.IsNullOrEmpty(signedIn.Item1) || string.IsNullOrEmpty(signedIn.Item2)) { LoginManager manager = new LoginManager() { LoginBehavior = LoginBehavior.Native }; manager.Init(); LoginManagerLoginResult result = await manager.LogInWithReadPermissionsAsync(new string[] { "public_profile", "email" }, null); var id = string.Empty; var token = string.Empty; var isAuthenticated = !result.IsCancelled && (result.Token != null); if (isAuthenticated) { token = result.Token.TokenString; id = result.Token.UserID; } facebookLogin.LoginCompleted(isAuthenticated, id, token); } else { facebookLogin.LoginCompleted(true, signedIn.Item2, signedIn.Item1); } } catch { facebookLogin.LoginCompleted(false, string.Empty, string.Empty); } #else var auth = new OAuth2Authenticator( clientId: facebookLogin.FacebookSettings.ClientId, scope: facebookLogin.FacebookSettings.Scope, authorizeUrl: new Uri(facebookLogin.FacebookSettings.AuthorizeUrl), redirectUrl: new Uri(facebookLogin.FacebookSettings.RedirectUrl)); auth.Completed += async(sender, eventArgs) => { string id = string.Empty, token = String.Empty; if (eventArgs.IsAuthenticated) { token = eventArgs.Account.Properties["access_token"]; var request = new OAuth2Request("GET", new Uri("https://graph.facebook.com/me?fields=name"), null, eventArgs.Account); await request.GetResponseAsync().ContinueWith(t => { if (!t.IsFaulted) { string response = t.Result.GetResponseText(); NSData responseData = NSData.FromString(response, NSStringEncoding.UTF8); NSError error; NSDictionary jsonDict = (NSDictionary)NSJsonSerialization.Deserialize(responseData, 0, out error); if (jsonDict != null) { NSObject obj = jsonDict.ValueForKey(new NSString("id")); id = obj?.ToString(); } } }); } facebookLogin.LoginCompleted(eventArgs.IsAuthenticated, id, token); }; PresentViewController(auth.GetUI(), true, null); #endif } }
private void LoginManagerRequestTokenHandler(LoginManagerLoginResult result, NSError error) { if (error != null) { //Handle error } var request = new GraphRequest("/me", null, AccessToken.CurrentAccessToken.TokenString, null, "GET"); var requestConnection = new GraphRequestConnection(); requestConnection.AddRequest(request, GraphRequestHandler); requestConnection.Start(); }
private void ObtainAccessToken(string[] permissionNames) { if (!UIDevice.CurrentDevice.CheckSystemVersion(9, 0)) { throw new NotSupportedException("The Facebook probe is only available on iOS 9 and higher."); } lock (LoginLocker) { if (HasValidAccessToken) { SensusServiceHelper.Get().Logger.Log("Already have valid Facebook access token. No need to initialize.", LoggingLevel.Normal, GetType()); return; } ManualResetEvent loginWait = new ManualResetEvent(false); string loginErrorMessage = null; bool userCancelledLogin = false; SensusContext.Current.MainThreadSynchronizer.ExecuteThreadSafe(async() => { try { LoginManagerLoginResult loginResult = await new LoginManager().LogInWithReadPermissionsAsync(permissionNames, UIApplication.SharedApplication.KeyWindow.RootViewController); if (loginResult == null) { loginErrorMessage = "No login result returned by login manager."; } else if (loginResult.IsCancelled) { loginErrorMessage = "User cancelled login."; userCancelledLogin = true; } else { AccessToken.CurrentAccessToken = loginResult.Token; } } catch (Exception ex) { loginErrorMessage = "Exception while logging in: " + ex.Message; } finally { loginWait.Set(); } }); loginWait.WaitOne(); if (loginErrorMessage == null) { SensusServiceHelper.Get().Logger.Log("Facebook login succeeded.", LoggingLevel.Normal, GetType()); } else { SensusServiceHelper.Get().Logger.Log("Error while initializing Facebook SDK and/or logging in: " + loginErrorMessage, LoggingLevel.Normal, GetType()); } if (!HasValidAccessToken) { string message = "Failed to obtain access token."; SensusServiceHelper.Get().Logger.Log(message, LoggingLevel.Normal, GetType()); // if the user cancelled the login, don't prompt them again if (userCancelledLogin) { throw new NotSupportedException(message + " User cancelled login."); } // if the user did not cancel the login, allow the login to be presented again when the health test is run else { throw new Exception(message); } } } }