9
votes

Android Facebook Loginbutton Callback saute à annuler

J'ai le code suivant. C'est un test simple de la fonction de rappel du loginbutton dans l'API Android de Facebook.

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_main);
    callbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = (LoginButton)findViewById(R.id.login_button);
    loginButton.setReadPermissions("user_friends");
    loginButton.setReadPermissions("email");
    loginButton.setReadPermissions("public_profile");
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

        @Override
        public void onSuccess(LoginResult loginResult) {
            Log.e("SUCCESS", "LOGIN SUCCESSFUL");
        }

        @Override
        public void onCancel() {
            Log.e("CANCEL", "Cancelled");
        }

        @Override
        public void onError(FacebookException e) {
            Log.e("ERROR", "Facebook Exception");
        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}


5 commentaires

Ce n'est pas d'impression d'erreur ni de succès?


Non, il ne s'agit que d'étiqueter


Est-ce que cela va toujours à Oncancel ()?


Oui, ça va toujours à Oncancel ()


@Thelonelyyak Avez-vous trouvé une solution pour cela?


4 Réponses :


5
votes

J'ai rencontré ce problème.

Il semble être le cas que si vous essayez de vous connecter (en utilisant loginwithreadpermissions ou loginwithpublishpermissions ) lorsque vous avez déjà un jeton d'accès (avec toutes les autorisations requises) Ensuite, le rappel Oncancel est exécuté.

C'est-à-dire que vous ne devez pas vous enregistrer dans l'utilisateur car l'utilisateur est déjà connecté. Vérifiez pour cette première.


0 commentaires

3
votes

Ma solution:

J'ai eu le même problème. Le rappel a toujours été reçu par oncancel () méthode.

J'effectue une connexion native (ce qui signifie que j'utilisais l'application Facebook), alors après avoir parlé avec un compagnon de travail, j'ai annulé mon application Facebook pour vérifier si une connexion non indigène était possible et exécutez mon application. À ma surprise, avant de recevoir le rappel sur la méthode Oncancel () , un message m'a informé mon Facebook App ID était faux, c'est tout ce qui était tout. J'avais copié un mauvais au lieu de celui que vous obtenez de https://developers.facebook.com/apps .

Il fonctionne maintenant et affiche même la boîte de dialogue Autorisations. Ce que je veux dire avec ceci est que toujours essaie natif et non natif. Peut-être que vous obtenez la réponse de l'un d'entre eux?


0 commentaires

10
votes

Comme Facebook nécessite maintenant un examen des applications qui utilisent l'accès à Publish, vous devez vous connecter à la console de développeurs Facebook, dans la section Apps, sélectionnez votre application, cliquez sur Rôles et ajoutez le rôle de testeur (ou d'administrateur). Après cela, vous devriez être capable d'obtenir un jeton d'accès approprié.


2 commentaires

Vous enregistrez ma journée Gabriel :) Merci!


quelqu'un peut-il s'il vous plaît dites-moi le processus complet



9
votes

Cette réponse m'a aidé dans une situation similaire.

https://stackoverflow.com/a/31625256/1987045

appel loginmanager.getinstance (). Déconnexion (); avant de tenter une connexion.


0 commentaires