Je suis assez exaspéré. Je suis d'essayer de construire une tour par tour multijoueur en ligne jeu pour Android à l'aide de Google App Engine Java en tant que serveur.
Ils semblent comme un ajustement parfait. Android nécessite un compte Google, et GAE utilise un compte Google pour l'authentification, tout en étant libre et évolutive.
Donc, avant les vacances, j'ai été en mesure d'obtenir l'authentification à mon GAE application à partir de mon Android client à l'aide de la nouvelle AccountManager API Android 2.0. Le code suivant vous permet d'accéder à la AuthToken de l'utilisateur du compte Google et ensuite l'utiliser pour l'authentification, de sorte que l'utilisateur n'a pas à entrer manuellement leur compte nom d'utilisateur et le mot de passe:
AccountManager mgr = AccountManager.get(this);
Account[] accts = mgr.getAccountsByType("com.google");
Account acct = accts[0];
AccountManagerFuture<Bundle> accountManagerFuture = mgr.getAuthToken(acct, "ah", null, this, null, null);
Bundle authTokenBundle = accountManagerFuture.getResult();
String authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();
J'étais alors en mesure d'ajouter le résultant AuthToken chaîne de caractères de l'URL appropriée et d'obtenir un cookie valide qui je pourrais ensuite utiliser pour toutes les autres demandes. La seule chose c'est, parfois, la semaine dernière il s'est juste arrêté de travailler pour moi. Maintenant, quand j'essaie d'utiliser le AuthToken du code ci-dessus, je ne suis pas un cookie est retourné et mon code génère une exception NullPointerException pour le cookie manquant.
Quand je reviens à l'ancienne manière, lorsque l'utilisateur a été saisie manuelle dans leur Google nom d'utilisateur et le mot de passe et je reçois le AuthToken de "https://www.google.com/accounts/ClientLogin", il fonctionne très bien.
S'il vous plaît dites-moi quelqu'un a construit un client Android pour Google App Engine application à l'aide de la AuthToken du compte Google sur le téléphone de l'utilisateur, et de me donner quelques indices quant à pourquoi cela ne fonctionne plus.
J'aimerais vraiment faire ce travail. Mes solutions sont à obliger l'utilisateur à entrer leurs informations d'identification (qui est maladroit, et qu'ils ne devraient pas avoir à le faire), ou aller avec une autre solution pour le serveur.
Merci à l'avance.