Facebook SDK 4 для Android – как выйти из программы

Недавно Facebook выпустил SDK 4 с новыми и прохладными обновлениями. Я попытался переключиться на SDK4, чтобы использовать новые функции, однако я борюсь с функцией входа в Facebook.

До сих пор, чтобы программно выйти из программы Facebook, я использовал:

Session session = Session.getActiveSession(); session.closeAndClearTokenInformation(); 

Но SDK4, похоже, больше не поддерживает сессию, и в официальных документах они упоминают:

Существует два способа внедрения Facebook-входа на Android:

Класс LoginButton – который предоставляет кнопку, которую вы можете добавить в свой интерфейс. Он следует за текущим токеном доступа и может регистрировать людей.

Ну, похоже, нет возможности выйти из программы Facebook, кроме использования LoginButton. У кого-нибудь есть идея, пожалуйста, поделитесь им здесь.

Вы можете использовать LoginManager.getInstance().logOut(); , Даже если вы используете LoginButton, потому что

Этот элемент пользовательского интерфейса обертывает функциональность, доступную в LoginManager.

EDIT: Просто упомянуть, что это работает для Facebook SDK v4 . Я не знаю, изменят ли они это в будущем.

@as batoutofhell упоминать, не забудьте поставить FacebookSdk.sdkInitialize(getApplicationContext()); Для инициализации facebook sdk. Подробности см. Здесь .

SDK4, если вы хотите полностью де-пара, убедитесь, что вы также удалили приложение из учетной записи пользователя facebook. Этот метод полностью отключает пользователя:

 public void disconnectFromFacebook() { if (AccessToken.getCurrentAccessToken() == null) { return; // already logged out } new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest .Callback() { @Override public void onCompleted(GraphResponse graphResponse) { LoginManager.getInstance().logOut(); } }).executeAsync(); } 

Вы можете использовать LoginManager.logOut ()

Проверьте https://developers.facebook.com/docs/reference/android/current/class/LoginManager/

Чтобы обработать его с помощью loginButton:

 //Check if user is currently logged in if (AccessToken.getCurrentAccessToken() != null && com.facebook.Profile.getCurrentProfile() != null){ //Logged in so show the login button fbLogin.setVisibility(View.VISIBLE); fbLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //log out LoginManager.getInstance().logOut(); gotoLogin(); } }); } 

U может выйти из системы с помощью LoginManager, но вы также должны использовать запрос графика. Я говорю о том, чтобы выйти из системы полностью, так что в следующий раз вы можете войти с другой учетной записью.

 new GraphRequest(AccessToken.getCurrentAccessToken(), "/me/permissions/", null, HttpMethod.DELETE, new GraphRequest .Callback() { @Override public void onCompleted(GraphResponse graphResponse) { SharedPreferences pref = DashBoard.this.getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.clear(); editor.commit(); LoginManager.getInstance().logOut(); Intent logoutint = new Intent(DashBoard.this,MainActivity.class); logoutint.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(logoutint); } }).executeAsync(); 

С помощью общих настроек здесь вы можете полностью выйти из системы. И в следующий раз вы можете выйти из другой учетной записи.