Question

J'ai un problème pour garder l'utilisateur à vous connecter à toute ma vie d'application, le "Connexion" est sur l'activité principale, lors de la démarrage d'une autre activité, je suis toujours logé et je peux télécharger des données sur QuickBlox, maisAprès avoir démarré une autre activité, puis recommencez l'activy que j'ai téléchargé les données sur QuickBlox, j'obtiens une erreur lorsque vous essayez de télécharger des données: "Token est requis" ...

EDIT:

 QBSettings.getInstance().fastConfigInit(String.valueOf(APP_ID), AUTH_KEY, AUTH_SECRET);
    QBUser user = new QBUser("login", "password");
    QBAuth.createSession(user, this, QBQueries.SIGN_IN);

Était-ce utile?

La solution

Je pense que c'est un autre problème

"Token est requis" signifie que vous n'avez pas créé de session et que vous essayez d'effectuer une autre requête

Vous devez créer correctement une session d'abord

        QBAuth.createSession(new QBCallbackImpl() {
            @Override
            public void onComplete(Result result) {
                if (result.isSuccess()) {
                    // do other requests here 
                    //
                } else {
                    handleErrors(result);
                }
            }
        });

Si ce n'est pas un problème pour vous - veuillez fournir plus de code dans votre question

upd

1) Essayez de vérifier le jeton pour NULL

try {
    String token = BaseService.getBaseService().getToken();
    if(token == null){
        // recreate session here
    }
} catch (BaseServiceException e) {
    e.printStackTrace();
}

Autres conseils

Je ne suis pas sûr de savoir comment utiliser cette API que vous utilisez ici, mais si vous souhaitez une suggestion alternative, j'ai toujours utilisé SharedPreferences pour enregistrer des sessions utilisateur.

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", username); // Save the username with tag "username"
editor.putString("password", password); // Save the password with tag "password"
editor.commit();

et pour récupérer les informations utilisateur:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
u = settings.getString("username", null);
p = settings.getString("password", null);
if(u == null && p == null) {...} // No saved user session, have user sign in
else {...} // User already logged in, go to main screen 

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top