Autorisation Android Facebook – ne peut pas vous connecter lorsque l'application Facebook officielle est installée

J'ai besoin de me connecter à Facebook et d'avoir les mêmes champs, comme le courrier électronique, etc. J'utilise le SDK de Facebook, et j'ai configuré ma clé Android Hash dans developers.facebook et configuré "Configuré pour Android SSO". Dans le simulateur et certains périphériques, l'application fonctionne bien.

Mais si l'application Facebook officielle est installée sur l'appareil, ma application ne fonctionne pas: je pousse le bouton de connexion, mais je ne vois pas une boîte de dialogue avec une vue web si mon mot de passe et la connexion étaient demandés. Il ressemble au problème lors de la question de débordement de Stack. L' utilisation de Facebook.authorize avec le SDK d'Android n'appelle pas la question de l'activitéResult ou Stack Overflow . , Mais je ne comprends pas comment le résoudre.

  • Application mal configurée Désolé, myapp n'a pas été approuvé pour l'afficher dans App Center. Dans l'application Android
  • Android: Démarrez le service avec Context.startService vs PendingIntent.getService
  • Facebook api sur Android: écran vide au lieu d'authentification
  • Ouvrez une application Facebook à partir d'une autre application
  • Connexion Facebook Ne peut pas passer une autorisation de publication ou de gestion (courrier électronique) à une demande d'autorisation de lecture
  • Facebook SDK 4.0.1 Ouverture de session sans connexion
  • Mon code

    @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { this.facebookConnector.getFacebook().authorizeCallback(requestCode, resultCode, data); } public void getAccessToken() { SessionEvents.AuthListener listener = new SessionEvents.AuthListener() { @Override public void onAuthSucceed() { setupAccessToken(facebookConnector.getFacebook().getAccessToken()); } @Override public void onAuthFail(String error) { Toast.makeText(getApplicationContext(), getString(R.string.error_login), Toast.LENGTH_SHORT).show(); } }; SessionEvents.addAuthListener(listener); facebookConnector.login(); } 

    Code code facebook

     public class FacebookConnector { public void login() { if (!facebook.isSessionValid()) { facebook.authorize(this.activity, this.permissions, new LoginDialogListener()); } } private final class LoginDialogListener implements DialogListener { public void onComplete(Bundle values) { SessionEvents.onLoginSuccess(); } public void onFacebookError(FacebookError error) { SessionEvents.onLoginError(error.getMessage()); } public void onError(DialogError error) { SessionEvents.onLoginError(error.getMessage()); } public void onCancel() { SessionEvents.onLoginError("Action Canceled"); } } } 

    4 Solutions collect form web for “Autorisation Android Facebook – ne peut pas vous connecter lorsque l'application Facebook officielle est installée”

    Veuillez mettre à jour le code ci-dessous de votre application. Cela résoudra votre problème.

     public void loginAndPostToWall() { facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener()); } 

    J'ai eu le même problème que vous. Enfin, j'ai résolu l'utilisation de ceci:

    Ouvrez Facebook.java fourni par le SDK de Facebook, puis changez-le comme ceci:

     public void authorize(Activity activity, String[] permissions, int activityCode, final DialogListener listener) { boolean singleSignOnStarted = false; mAuthDialogListener = listener; /* // Prefer single sign-on, where available. if (activityCode >= 0) { singleSignOnStarted = startSingleSignOn(activity, mAppId, permissions, activityCode); } // Otherwise fall back to the traditional dialog. if (!singleSignOnStarted) { */ startDialogAuth(activity, permissions); // } } 

    C'est juste une supposition sauvage, mais au lieu de cela:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { this.facebookConnector.getFacebook().authorizeCallback(requestCode, resultCode, data); } 

    Essayer:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); this.facebookConnector.getFacebook().authorizeCallback(requestCode, resultCode, data); } 

    Comme vous n'appeliez pas à la méthode parent, certaines choses pourraient ne pas fonctionner comme prévu …

     private static Session openActiveSession(Activity activity, boolean allowLoginUI, StatusCallback callback, List<String> permissions) { OpenRequest openRequest = new OpenRequest(activity).setPermissions(permissions).setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO).setCallback(callback); Session session = new Session.Builder(activity).build(); if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) { Session.setActiveSession(session); session.openForRead(openRequest); return session; } return null; } 

    Modifiez votre fonction openactivesession comme celle-ci

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.