private void registerFacebookCallback() { final PublishSubject<String> fbAccessToken = this.facebookAccessToken; final BehaviorSubject<FacebookException> fbAuthError = this.facebookAuthorizationError; this.callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(this.callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(final @NonNull LoginResult result) { fbAccessToken.onNext(result.getAccessToken().getToken()); } @Override public void onCancel() { // continue } @Override public void onError(final @NonNull FacebookException error) { if (error instanceof FacebookAuthorizationException) { fbAuthError.onNext(error); } } }); }
protected void execute() { if (sessionManager.isLoggedIn()) { AccessToken accessToken = sessionManager.getAccessToken(); Bundle bundle = updateAppSecretProof(); GraphRequest request = new GraphRequest(accessToken, getGraphPath(), bundle, HttpMethod.GET); request.setVersion(configuration.getGraphVersion()); runRequest(request); } else { String reason = Errors.getError(Errors.ErrorMsg.LOGIN); Logger.logError(getClass(), reason, null); if (mSingleEmitter != null) { mSingleEmitter.onError(new FacebookAuthorizationException(reason)); } } }
public void fbLogin(final FBLoginInterface fbLoginInterface, final Activity activity) { List<String> permissionNeeds = Arrays.asList("email"); LoginManager.getInstance().logInWithReadPermissions(activity, permissionNeeds); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { Bundle facebookBundle = getFacebookData(object); fbLoginInterface.doTaskAfterLogin(facebookBundle); } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id, first_name, last_name, email,gender, birthday, location"); // Parámetros que pedimos a facebook request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { } @Override public void onError(FacebookException error) { if (error instanceof FacebookAuthorizationException) { if (AccessToken.getCurrentAccessToken() != null) { LoginManager.getInstance().logOut(); fbLogin(fbLoginInterface, activity); } } } }); }
private void onSessionCallback(Session paramSession, SessionState paramSessionState, Exception paramException, DialogListener paramDialogListener) { Bundle localBundle = paramSession.getAuthorizationBundle(); if (paramSessionState == SessionState.OPENED) { Session localSession2; synchronized (this.lock) { Session localSession1 = this.session; localSession2 = null; if (paramSession != localSession1) { localSession2 = this.session; this.session = paramSession; this.sessionInvalidated = false; } } if (localSession2 != null) localSession2.close(); paramDialogListener.onComplete(localBundle); return; } if (paramException != null) { if ((paramException instanceof FacebookOperationCanceledException)) { paramDialogListener.onCancel(); return; } if (((paramException instanceof FacebookAuthorizationException)) && (localBundle != null) && (localBundle.containsKey("com.facebook.sdk.WebViewErrorCode")) && (localBundle.containsKey("com.facebook.sdk.FailingUrl"))) { paramDialogListener.onError(new DialogError(paramException.getMessage(), localBundle.getInt("com.facebook.sdk.WebViewErrorCode"), localBundle.getString("com.facebook.sdk.FailingUrl"))); return; } paramDialogListener.onFacebookError(new FacebookError(paramException.getMessage())); } }