Google Plus Login Access Token Retrista
-
23-12-2019 - |
Pregunta
Necesito obtener un token de acceso y enviarlo al servidor.Con ese servidor Token de acceso debe obtener todos los datos de usuario, como nombre, imagen de perfil y correo electrónico.
Puedo obtener un token de acceso usando scopes.plus_login y scopes.plus_me , pero con ese servidor Token de acceso no puede obtener el correo electrónico de usuario.
Aquí está mi código:
@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
}
};
}
¿Alguien sabe cómo resolver este problema?
Solución
Te estás perdiendo el alcance
https://www.googleapis.com/auth/userinfo.email
Probé los otros ámbitos y solo que uno parece devolver el correo electrónico de los usuarios.Puede probar los diferentes ámbitos y lo que devuelven aquí: personas: obtener .
Nota: No soy un programador de Android, probablemente tenga mejor suerte para descubrir cómo solicitar ese alcance con Android.Estoy buscando, pero no he podido encontrarlo.
Parece que el alcance podría ser un correo electrónico https://developers.google.com/+ / api / oauth # correo electrónico