Domanda

Ho bisogno di ottenere il token di accesso e inviarlo al server.Con questo server di token di accesso dovrebbe ottenere tutti i dettagli dell'utente, come nome, immagine del profilo ed e-mail.

Posso ottenere il token di accesso utilizzando Scopes.Plus_login e Scopes.Plus_me , ma con quel server del token di accesso non può ottenere un'e-mail dell'utente.

Ecco il mio codice:

@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
        }

    };


}
.

Qualcuno sa come risolvere questo problema?

È stato utile?

Soluzione

Ti manca lo scope

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

Ho testato gli altri scopi e solo quello sembra restituire l'e-mail degli utenti.Puoi testare i diversi ambiti e ciò che ritornano qui: Persone: Ottieni .

Nota: non sono un programmatore Android, probabilmente avrai una buona fortuna di scoprire come richiedere questo scopo con Android.Sto cercando, ma non sono stato in grado di trovarlo.

Sembra che lo scopo potrebbe essere solo e-mail https://developers.google.com/+ / API / OAUTH # Email

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top