/// <summary> /// Ons the create. /// </summary> /// <param name="savedInstanceState">Saved instance state.</param> protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); #region [ Facebook ] FacebookSdk.SdkInitialize(ApplicationContext); callbackManager = CallbackManagerFactory.Create(); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { var facebookToken = AccessToken.CurrentAccessToken.Token; }, HandleCancel = () => { }, HandleError = loginError => { } }; LoginManager.Instance.RegisterCallback(callbackManager, loginCallback); #endregion LoadApplication(new App()); }
protected override void OnCreate(Bundle bundle) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); //facebook implementation callbackManager = CallbackManagerFactory.Create(); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = (loginResult) => { //proceed next page App.ProceedToHome(); }, HandleCancel = () => { //handle cancel }, HandleError = (loginError) => { //handle error } }; LoginManager.Instance.RegisterCallback(callbackManager, loginCallback); LoadApplication(new App()); FirebaseApp.InitializeApp(this); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); RequestWindowFeature(WindowFeatures.NoTitle); SetContentView(Resource.Layout.AuthActivity); DroidDAL.HockeyAppRegister(this); _view = FindViewById <AuthView>(Resource.Id.auth_view); InitStatusBar(); ThemeHolder.Init(DataService.RepositoryController.RepositoryThemes); _interactor = new InteractorAuth(new AuthController(ConnectionController.GetInstance(), WebMsgParser.ParseResponseAuth), new ValidationRA()); #if MOCK _presenter = new PresenterAuthMOCK(_view, _interactor, new RouterAuth(this), FacebookCallLoginAction, GoogleCallLoginAction, VkCallLoginAction, OkCallLoginAction, new AuthStylesHolderDroid <GlobalControlsTheme>(new ThemeParser <GlobalControlsTheme>()), DataService.RepositoryController.RepositoryRA.LangRA); #else _presenter = new PresenterAuth(_view, _interactor, new RouterAuth(this), FacebookCallLoginAction, GoogleCallLoginAction, VkCallLoginAction, OkCallLoginAction, new AuthStylesHolderDroid <GlobalControlsTheme>(new ThemeParser <GlobalControlsTheme>()), DataService.RepositoryController.RepositoryRA.LangRA); #endif _presenter.SetConfig(); _callbackManager = CallbackManagerFactory.Create(); _facebookCallback = new FacebookCallback(_interactor); LoginManager.Instance.RegisterCallback(_callbackManager, _facebookCallback); _interactor.OnSocialLogOut += SocialLogOut; }
protected override void OnElementChanged(ElementChangedEventArgs <Button> e) { base.OnElementChanged(e); _activity = this.Context as MainActivity; var loginButton = new LoginButton(this.Context); var facebookCallback = new FacebookCallback <LoginResult> { HandleSuccess = shareResult => { Action <string> local = SignInViewModel.PostSuccessFacebookAction; if (local != null) { local(shareResult.AccessToken.Token); } } , HandleCancel = () => { Console.WriteLine("HelloFacebook: Canceled"); }, HandleError = shareError => { Console.WriteLine("HelloFacebook: Error: {0}", shareError); } }; loginButton.RegisterCallback(MainActivity.CallbackManager, facebookCallback); base.SetNativeControl(loginButton); }
protected override void OnElementChanged(ElementChangedEventArgs <Button> e) { base.OnElementChanged(e); var activity = Context as MainActivity; var formsButton = e.NewElement as FacebookLoginButton; var loginButton = new LoginButton(Context); loginButton.SetReadPermissions("public_profile"); var facebookCallback = new FacebookCallback() { HandleSuccess = (LoginResult loginResult) => { formsButton.OnLoginSuccess(loginResult.AccessToken.Token); }, HandleCancel = () => { formsButton.OnLoginCancel(); }, HandleError = (FacebookException exception) => { formsButton.OnLoginError(exception.Message); } }; loginButton.RegisterCallback(activity.FacebookCallbackManager, facebookCallback); SetNativeControl(loginButton); }
protected async override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); FacebookSdk.SdkInitialize(this); SetContentView(Resource.Layout.Main); FindViewById <LoginButton>(Resource.Id.login_button).SetReadPermissions("email"); callbackManager = CallbackManagerFactory.Create(); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = SignInWithFacebookToken, HandleCancel = () => Log.Debug( Application.PackageName, "Canceled"), HandleError = error => Log.Error( Application.PackageName, Java.Lang.Throwable.FromException(error), "No access") }; LoginManager.Instance.RegisterCallback(callbackManager, loginCallback); carService = new CarService(); tokenTracker = new FacebookTokenTracker(carService) { HandleLoggedIn = UpdateButtons, HandleLoggedOut = UpdateButtons }; tokenTracker.StartTracking(); if (carService.GetLoginStatus() == CarService.LoginStatus.NeedsWebApiToken) { await SignInWithFacebookToken(AccessToken.CurrentAccessToken.Token); } UpdateButtons(); searchCar = FindViewById <AutoCompleteTextView>(Resource.Id.searchCar); findCar = FindViewById <Button>(Resource.Id.findCar); showAvailableCars = FindViewById <Button>(Resource.Id.showAvailableCars); findCar.Click += findCar_Click; findCar.Enabled = false; searchCar.TextChanged += (sender, e) => { if (searchCar.Text.Length > 4) { findCar.Enabled = true; } else { findCar.Enabled = false; } }; showAvailableCars.Click += (sender, args) => StartActivity(typeof(allAvailableActivity)); }
private async Task<FacebookAuthenticationResult> getFacebookToken() { var token = Xamarin.Facebook.AccessToken.CurrentAccessToken; if (token != null) return new FacebookAuthenticationResult(){ Token = token }; var completion = new TaskCompletionSource<FacebookAuthenticationResult>(); var loginCallback = new FacebookCallback(completion); var activity = Xamarin.Forms.Forms.Context as MainActivity; LoginManager.Instance.RegisterCallback (activity.CallbackManager, loginCallback); LoginManager.Instance.LogInWithReadPermissions(activity, new string[] { "public_profile", "email", "user_friends" }); return await completion.Task; }
private void InitFacebook() { FacebookSdk.SdkInitialize(ApplicationContext); fbCallbackManager = CallbackManagerFactory.Create(); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { SetFacebookLoginResult(loginResult.AccessToken); }, HandleError = ex => { SetFacebookLoginError(ex); }, HandleCancel = () => SetFacebookCancellation() }; LoginManager.Instance.RegisterCallback(fbCallbackManager, loginCallback); }
/// <summary> /// Signs the into facebook. /// </summary> /// <returns>Task<FacebookLoginResult>.</returns> public async Task <FacebookLoginResult> SignIntoFacebook() { var login = new FacebookLoginResult(); if (AccessToken.CurrentAccessToken == null || (AccessToken.CurrentAccessToken != null && AccessToken.CurrentAccessToken.IsExpired)) { // LoginManager.Instance.LogOut(); var taskCompletionSource = new TaskCompletionSource <FacebookLoginResult>(); var activity = Xamarin.Forms.Forms.Context as MainActivity; var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { UpdateFacebookResult(login); taskCompletionSource.SetResult(login); }, HandleCancel = () => { System.Diagnostics.Debug.WriteLine("fbcancel"); UpdateFacebookResult(login, true, false); taskCompletionSource.SetResult(login); }, HandleError = loginError => { System.Diagnostics.Debug.WriteLine("fberror"); login.Error = loginError.Message; UpdateFacebookResult(login, true, true); taskCompletionSource.SetResult(login); } }; if (activity == null) { return(null); } //LoginManager.Instance.RegisterCallback(activity.CallbackManager, loginCallback); LoginManager.Instance.LogInWithReadPermissions(activity, _readPermissions); return(await taskCompletionSource.Task); } UpdateFacebookResult(login); return(login); }
void InitFBSettings() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { var accessToken = AccessToken.CurrentAccessToken; FBGraphRequeest(accessToken, accessToken.UserId); }, HandleCancel = () => { }, HandleError = loginError => { } }; LoginManager.Instance.RegisterCallback(callbackManager, loginCallback); }
private void SetupFacebookLogin() { callbackManager = CallbackManagerFactory.Create(); facebookLoginBtn = FindViewById <LoginButton>(Resource.Id.facebookLoginBtn); facebookLoginBtn.SetReadPermissions("public_profile", "email"); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = async loginResult => { progress.ShowProgressDialog("Trwa logowanie w aplikacji... Proszê czekaæ"); var token = await LoginWithFacebook(); if (token != null) { progress.CloseProgressDialog(); if (token.UserHasToSetNickName) { GoToActivity(new Intent(this, typeof(StartActivity))); } else { SetUserNameInAppSettings(token.UserName); GoToActivity(new Intent(this, typeof(MainActivity))); } } else { progress.CloseProgressDialog(); AlertsService.ShowLongToast(this, "Facebook zwróci³ token, ale coœ posz³o nie tak z logowaniem na serwerze"); } }, HandleCancel = () => { progress.CloseProgressDialog(); AlertsService.ShowLongToast(this, "Przerwano logowanie z facebookiem"); }, HandleError = loginError => { progress.CloseProgressDialog(); AlertsService.ShowLongToast(this, "Wyst¹pi³ b³¹d podczas logowania z facebookiem"); } }; facebookLoginBtn.RegisterCallback(this.callbackManager, loginCallback); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // FacebookSdk.SdkInitialize(ApplicationContext); callbackManager = CallbackManagerFactory.Create(); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = (loginResult) => { UpdateUI(); MoveToNextView(); }, HandleError = (loginError) => { ShowAlert("Exception", loginError.Message, "確認", (obj) => { }); UpdateUI(); }, HandleCancel = () => { ShowAlert("Cancel", "取消", "確認", (obj) => { }); UpdateUI(); } }; LoginManager.Instance.RegisterCallback(callbackManager, loginCallback); SetContentView(Resource.Layout.facebookloginview); profilePictureView = FindViewById <ProfilePictureView> (Resource.Id.facebookloginview_profilePicture); var profile = Profile.CurrentProfile; if (profile != null) { profilePictureView.ProfileId = profile.Id; MoveToNextView(); } }
protected override void OnCreate(Bundle savedInstanceState) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(savedInstanceState); CrossCurrentActivity.Current.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new App()); var loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = (loginResult) => { Console.WriteLine(loginResult); } }; callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, loginCallback); }
public async Task <LoginResult> LoginFacebookAsync() { var facebookLoginTcs = new TaskCompletionSource <LoginResult>(); var callbackManager = CallbackManagerFactory.Create(); var facebookCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { if (loginResult.AccessToken != null) { facebookLoginTcs.TrySetResult(loginResult); } else { var error = new StringBuilder(); error.AppendLine("Facebook Client Flow Login Failed"); facebookLoginTcs.TrySetException(new Exception(error.ToString())); } }, HandleCancel = () => { //facebookLoginTcs.TrySetException(new Exception("Facebook Client Flow Login Failed")); }, HandleError = loginError => { var error = new StringBuilder(); error.AppendLine("Facebook Client Flow Login Failed"); error.AppendLine("Message: " + loginError.Message); error.AppendLine("StackTrace: " + loginError.StackTrace); facebookLoginTcs.TrySetException(new Exception(error.ToString())); } }; LoginManager.Instance.RegisterCallback(callbackManager, facebookCallback); LoginManager.Instance.LogInWithReadPermissions(CrossCurrentActivity.Current.Activity, new[] { "public_profile" }); return(await facebookLoginTcs.Task); }
private void ObtainAccessToken(string[] permissionNames) { lock (LoginLocker) { if (HasValidAccessToken) { SensusServiceHelper.Get().Logger.Log("Already have valid Facebook access token. No need to initialize.", LoggingLevel.Normal, GetType()); } else { #region ensure that facebook sdk is initialized if (FacebookSdk.IsInitialized) { SensusServiceHelper.Get().Logger.Log("Facebook SDK is already initialized.", LoggingLevel.Normal, GetType()); } else { SensusServiceHelper.Get().Logger.Log("Initializing Facebook SDK.", LoggingLevel.Normal, GetType()); FacebookSdk.SdkInitialize(Application.Context); Thread.Sleep(5000); // give sdk intialization a few seconds to read the access token } #endregion if (HasValidAccessToken) { SensusServiceHelper.Get().Logger.Log("Facebook access token read from cache.", LoggingLevel.Normal, GetType()); } else { ManualResetEvent loginWait = new ManualResetEvent(false); bool loginCancelled = false; string accessTokenError = null; #region prompt user to log in from main activity (SensusServiceHelper.Get() as AndroidSensusServiceHelper).RunActionUsingMainActivityAsync(mainActivity => { try { FacebookCallback <LoginResult> loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { SensusServiceHelper.Get().Logger.Log("Facebook login succeeded.", LoggingLevel.Normal, GetType()); AccessToken.CurrentAccessToken = loginResult.AccessToken; loginWait.Set(); }, HandleCancel = () => { SensusServiceHelper.Get().Logger.Log("Facebook login cancelled.", LoggingLevel.Normal, GetType()); AccessToken.CurrentAccessToken = null; loginCancelled = true; loginWait.Set(); }, HandleError = loginResult => { SensusServiceHelper.Get().Logger.Log("Facebook login failed.", LoggingLevel.Normal, GetType()); AccessToken.CurrentAccessToken = null; loginWait.Set(); }, }; LoginManager.Instance.RegisterCallback(mainActivity.FacebookCallbackManager, loginCallback); LoginManager.Instance.LogInWithReadPermissions(mainActivity, permissionNames); } catch (Exception ex) { accessTokenError = ex.Message; loginWait.Set(); } }, true, false); #endregion loginWait.WaitOne(); if (accessTokenError != null) { SensusServiceHelper.Get().Logger.Log("Error while initializing Facebook SDK and/or logging in: " + accessTokenError, LoggingLevel.Normal, GetType()); } // if the access token is still not valid after logging in, consider it a fail. 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 to log in again if (loginCancelled) { 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); } } } } } }
private void SetupFacebookLogin() { callbackManager = CallbackManagerFactory.Create(); LoginButton facebookLoginBtn = FindViewById<LoginButton>(Resource.Id.facebookLoginBtn); facebookLoginBtn.SetReadPermissions("public_profile", "email"); var loginCallback = new FacebookCallback<LoginResult> { HandleSuccess = async loginResult => { AlertsService.ShowToast(this, "Facebook zwróci³ token"); var userIsLogged = await LoginWithFacebook(); if (userIsLogged) { GoToMainActivity(); } else { AlertsService.ShowToast(this, "Facebook zwróci³ token, ale coœ posz³o nie tak z logowaniem na serwerze"); } }, HandleCancel = () => { AlertsService.ShowToast(this, "Przerwano logowanie z facebookiem"); }, HandleError = loginError => { AlertsService.ShowToast(this, "Wyst¹pi³ b³¹ podczas logowanie z facebookiem"); } }; facebookLoginBtn.RegisterCallback(this.callbackManager, loginCallback); }
protected override void Initialize() { base.Initialize(); if (HasValidAccessToken) { SensusServiceHelper.Get().Logger.Log("Already have valid Facebook access token. No need to initialize.", LoggingLevel.Normal, GetType()); return; } _loginWait.Reset(); string accessTokenError = null; (SensusServiceHelper.Get() as AndroidSensusServiceHelper).GetMainActivityAsync(true, mainActivity => { if (mainActivity == null) { accessTokenError = "Failed to get main activity: activity null"; _loginWait.Set(); } else { try { if (FacebookSdk.IsInitialized) { SensusServiceHelper.Get().Logger.Log("Facebook SDK is already initialized.", LoggingLevel.Normal, GetType()); } else { SensusServiceHelper.Get().Logger.Log("Initializing Facebook SDK.", LoggingLevel.Normal, GetType()); FacebookSdk.SdkInitialize(mainActivity); Thread.Sleep(5000); // give sdk intialization a few seconds to read the access token } #region register callback FacebookCallback <LoginResult> loginCallback = new FacebookCallback <LoginResult> { HandleSuccess = loginResult => { SensusServiceHelper.Get().Logger.Log("Facebook login succeeded.", SensusService.LoggingLevel.Normal, GetType()); AccessToken.CurrentAccessToken = loginResult.AccessToken; _loginWait.Set(); }, HandleCancel = () => { SensusServiceHelper.Get().Logger.Log("Facebook login cancelled.", SensusService.LoggingLevel.Normal, GetType()); AccessToken.CurrentAccessToken = null; _loginWait.Set(); }, HandleError = loginResult => { SensusServiceHelper.Get().Logger.Log("Facebook login failed.", SensusService.LoggingLevel.Normal, GetType()); AccessToken.CurrentAccessToken = null; _loginWait.Set(); }, }; LoginManager.Instance.RegisterCallback(mainActivity.FacebookCallbackManager, loginCallback); #endregion if (HasValidAccessToken) { SensusServiceHelper.Get().Logger.Log("Facebook access token read from cache.", LoggingLevel.Normal, GetType()); _loginWait.Set(); } else { LoginManager.Instance.LogInWithReadPermissions(mainActivity, GetRequiredPermissionNames()); } } catch (Exception ex) { accessTokenError = ex.Message; _loginWait.Set(); } } }); _loginWait.WaitOne(); if (accessTokenError != null) { SensusServiceHelper.Get().Logger.Log("Error while initializing Facebook SDK and/or logging in: " + accessTokenError, LoggingLevel.Normal, GetType()); } if (!HasValidAccessToken) { string message = "Failed to obtain access token."; SensusServiceHelper.Get().Logger.Log(message, LoggingLevel.Normal, GetType()); throw new Exception(message); } }