Question

J'ai besoin d'obtenir un jeton d'accès et de l'envoyer au serveur.Avec cet accès, le serveur de jeton d'accès doit obtenir tous les détails de l'utilisateur, comme le nom, la photo de profil et le courrier électronique.

Je peux obtenir un jeton d'accès en utilisant scules.plus_login et scules.plus_me , mais avec ce serveur de jeton d'accès ne peut pas obtenir un email utilisateur.

Voici mon code:

@Override
public void onConnected(Bundle arg0) {
    mSignInClicked = false;


    AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {
        @Override
        protected String doInBackground(Void... params) {
            String token = null;
            String scope = "oauth2:" + Scopes.PLUS_LOGIN + " " + Scopes.PLUS_ME;
            try {
                token = GoogleAuthUtil.getToken(
                        getApplicationContext(),
                        Plus.AccountApi.getAccountName(mGoogleApiClient),
                        scope);
                appUser.setToken(token);
            } catch (IOException transientEx) {
                // Network or server error, try later
                Log.e(TAG, transientEx.toString());
            } catch (UserRecoverableAuthException e) {
                // Recover (with e.getIntent())                
            } catch (GoogleAuthException authEx) {
                // The call is not ever expected to succeed
                // assuming you have already verified that 
                // Google Play services is installed.
                Log.e(TAG, authEx.toString());
            }

            return token;
        }

        @Override
        protected void onPostExecute(String token) {
            Log.i(TAG, "Access token retrieved:" + appUser.getToken());
            // Get user's information
        }

    };


}

Quelqu'un peut-il savoir comment résoudre ce problème?

Était-ce utile?

La solution

vous manquez la portée

https://www.googleapis.com/auth/userinfo.email  

J'ai testé les autres étendues et seulement celui-ci semble renvoyer le courrier électronique des utilisateurs.Vous pouvez tester les différentes étendues et ce qu'ils reviennent ici: personnes: obtenir .

Remarque: Je ne suis pas un programmeur Android, vous aurez probablement mieux la chance de déterminer comment demander cette portée avec Android.Je cherche, mais je n'ai pas pu le trouver.

On dirait que la portée peut simplement être un e-mail https://developers.google.com/+ / API / OAUTH # Email

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