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!
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:
OR
Cette méthode vous permettra de tester l'application sur les appareils sélectionnés:
cela s'ajoute lorsque vous n'avez pas d'évaluation des utilisateurs dans votre application.
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);
}
}