Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo obtener correo electrónico de usuario en GraphRequest.newMeRequest

Tengo una opción de inicio de sesión de Facebook en mi aplicación de Android y estoy tratando de obtener el correo electrónico del usuario sin éxito. Una vez que el usuario ha iniciado sesión y agregado a la tabla de usuarios de Parse.com (con un token de acceso válido), solicito la información de usuario de Facebook, pero solo obtengo su nombre de identificación (aunque el correo electrónico esté configurado como uno de los permisos ).

Aquí está mi código (dentro de OnClickListener de mi botón):

ParseFacebookUtils.logInWithReadPermissionsInBackground( getActivity(), Arrays.asList("email", "user_friends"), new LogInCallback() { @Override public void done(ParseUser user, ParseException err) { //err is null if (user == null) { Log.d(TAG, "Uh oh. The user cancelled the Facebook login."); } else { GraphRequest.newMeRequest( AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject user, GraphResponse response) { Log.d(TAG, "user = " + user.toString()); //prints -> user = {"name":"my_fb_name","id":"my_fb_id"} } } ).executeAsync(); } }); 

One Solution collect form web for “Cómo obtener correo electrónico de usuario en GraphRequest.newMeRequest”

Supongo que esto está relacionado con un cambio en la API de Graph v2.4 que hace necesario que especifique cada campo que desea que haya regresado de la Graph API.

Echa un vistazo a mi respuesta en

  • Facebook sólo devuelve el nombre y el ID de usuario

con respecto a este

Con respecto a su problema real, vea

Para un ejemplo de cómo especificar los campos para un GraphRequest

 GraphRequest request = GraphRequest.newMeRequest( accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted( JSONObject object, GraphResponse response) { // Application code } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,email"); request.setParameters(parameters); request.executeAsync(); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.