web-dev-qa-db-fra.com

La connexion Facebook avec Android SDK ne fonctionne pas

J'ai intégré Facebook login à mon application Android. Cela fonctionnait. Mais maintenant ça ne marche pas. Lorsque j'ai débogué l'application, j'ai constaté que maintenant LoginManager Callback donnait une exception. Je ne sais pas ce que c'est et comment le résoudre ..__ Et c'est l'exception que j'ai eu 

exception: "SERVER_ERROR [code] 1675030 [message]: Erreur lors de l'exécution de la requête [extra]: erreur lors de l'exécution de l'opération " ProxyAuthAppLoginStartQuery ": dans Query.proxy_auth_app_login_start: Impossible de résoudre le champ." 

code

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment_sign_in, null);
    CardView mSignInFbButton = (CardView) view.findViewById(R.id.sign_up_fb);
    mSignInFbButton.setOnClickListener(v ->{
                if (AccessToken.getCurrentAccessToken() != null) {
                    LoginManager.getInstance().logOut();
                }
                LoginManager.getInstance().logInWithReadPermissions(SignInFragment.this, Arrays.asList("public_profile", "email"));
            }
    );
    callbackManager = CallbackManager.Factory.create();
    LoginManager.getInstance().registerCallback(callbackManager, mFBSignInCallback);
    return view;
}

private FacebookCallback mFBSignInCallback = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        Beco.getApp().currentUser().signInFacebook();
    }

    @Override
    public void onCancel() {
        Log.d(TAG, "onCancel");
    }

    @Override
    public void onError(FacebookException exception) {
        Log.d(TAG, "onError");
    }
};
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    callbackManager.onActivityResult(requestCode, resultCode, data);

}  

Dans le LoginManager Callback ça va à public void onError(FacebookException exception) Toutes les suggestions sont appréciées. Merci!

9
vm345

Ouvrez votre application enregistrée dans la console de développement Facebook.

Cette méthode rendra l'application accessible au public pour tous les appareils de test:

  1. Sélectionnez l'option 'App Review' 
  2. Rendre social ajoute public? l'activer à 'Oui'

OR

Cette méthode vous permettra de tester l'application sur les appareils sélectionnés:

  1. Sélectionnez l'option 'Rôle'
  2. Ajouter 'Testeurs' pour l'application 
22
Honey Agarwal

cela s'ajoute lorsque vous n'avez pas d'évaluation des utilisateurs dans votre application.

 enter image description here

Et ajoutez les utilisateurs de test, lorsque vous essayez de vous connecter avec des utilisateurs de test, l'application excuse sans échec.

Voici les réponses des groupes Google

Mais je pense que vous devriez utiliser callbackManager à onCreate . Vous trouverez ci-dessous un exemple de code pour l'intégration de Facebook SignIn

        public class SignInFragment extends Fragment{   
         @Override
                public void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);

                    callbackManager = CallbackManager.Factory.create();
                }
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                    view = inflater.inflate(R.layout.fragment_sign_in, null);

          LoginManager.getInstance().registerCallback(callbackManager, mFBSignInCallback);

         List<String> permissionNeeds = Arrays.asList("public_profile", "email");
        LoginManager.getInstance().logInWithReadPermissions(SignInFragment.this, permissionNeeds);

             return view;
            }

private FacebookCallback<LoginResult> mFBSignInCallback = new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Toast.makeText(mContext, "in LoginResult on success", Toast.LENGTH_LONG).show();
            @Override
                    public void onCancel() {
                        Log.d("VIVZ", "onCancel");
                    }

                    @Override
                    public void onError(FacebookException e) {
                        Log.d("VIVZ", "onError " + e.getMessage());
                        }
                };

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

        }
1
Rezaul Karim