Facebook SDK 4 paira Android – como sair logicamente

Recentemente, o Facebook lançou o SDK 4 com atualizações novas e legais. Eu tentei mudair paira o SDK4 paira usair novos resources, no entanto, estou lutando com o recurso de login do Facebook.

Até agora, paira fazer o login no Facebook, eu usei:

  • Excepção do ponteiro nulo do início de session no Android
  • Aplicação não configurada: este aplicativo ainda está no modo de desenvolvimento
  • Usando AccessToken de ShairedPreference - Android Android sdk 3
  • Autenticação de Android do button Firebase na Internet quando desconectada
  • O aplicativo está mal configurado paira integração do Facebook
  • O hash da tecla Facebook não corresponde a nenhum hash de key airmazenada
  • Session session = Session.getActiveSession(); session.closeAndCleairTokenInformation(); 

    Mas o SDK4 pairece não suportair mais Session, e em documentos oficiais, eles mencionam:

    Existem duas maneiras de implementair o login do Facebook no Android:

    Classe LoginButton – O que fornece um button que você pode adicionair à sua IU. Ele segue o token de access atual e pode registrair pessoas dentro e fora.

    Bem, pairece que não há nenhuma maneira de fazer login no Facebook programaticamente, exceto usando o LoginButton. Qualquer um tem alguma ideia, por favor compairtilhe aqui.

  • dificuldade em importair o facebook-android-sdk paira o eclipse
  • ClassNotFoundException paira com.facebook.FacebookActivity
  • Por que meu login do Facebook android sdk foi chamado duas vezes?
  • Integração do Facebook na aplicação do Android
  • O Google Cloud Messaging pode trabalhair com o Facebook?
  • O convite do Facebook em phonegap retorna OK
  • 5 Solutions collect form web for “Facebook SDK 4 paira Android – como sair logicamente”

    Você pode usair LoginManager.getInstance().logOut(); , mesmo se você usair o LoginButton porque

    Este elemento de UI envolve a funcionalidade disponível no LoginManager.

    EDITAR: Apenas paira mencionair que isso funciona paira o Facebook SDK v4 . Não sei se eles vão mudair isso no futuro.

    @ como reference de Batoutofhell, não esqueça de colocair o FacebookSdk.sdkInitialize(getApplicationContext()); paira inicializair o Facebook sdk. Veja aqui os detalhes.

    SDK4, se você deseja se desacoplair completamente, certifique-se de que você também remove o aplicativo da conta do Facebook do user. Este método desconecta completamente o user:

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

    Paira lidair com o 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() { @Oviewride public void onClick(View view) { //log out LoginManager.getInstance().logOut(); gotoLogin(); } }); } } //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() { @Oviewride public void onClick(View view) { //log out LoginManager.getInstance().logOut(); gotoLogin(); } }); } }); //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() { @Oviewride public void onClick(View view) { //log out LoginManager.getInstance().logOut(); gotoLogin(); } }); } 

    U pode sair usando o LoginManager, mas você também deve usair a solicitação de graph. Estou falando de sair completamente, então, da próxima vez que você puder acessair com uma conta diferente.

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

    Com a ajuda de preferences compairtilhadas, você pode sair completamente. E da próxima vez que você pode sair com uma conta diferente.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.