Login Facebook en Android

Guía de como implementar el inicio de sesión (Log In) con Facebook en una aplicación Android. Antes de iniciar la implementación previamente hay que configurar el SDK de Facebook.

Antes de empezar, necesitas haber configurado el SDK de Facebook en tu aplicación Android.

Código usado en el vídeo

Obtener información del usuario

Una vez el Log In sea exitoso se puede obtener la información del usuario de la siguiente forma.

if (Profile.getCurrentProfile() != null) {  
    Profile profile = Profile.getCurrentProfile();
    String firstName = profile.getFirstName();
    String lastName = profile.getLastName();
    String photoUrl = profile.getProfilePictureUri(200, 200).toString();
} else {
    ProfileTracker profileTracker = new ProfileTracker() {
        @Override
        protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
            stopTracking();
            Profile.setCurrentProfile(currentProfile);
            // Desde aquí ya se puede obtener la información como en el caso de arriba
        }
    };
    profileTracker.startTracking();
}

Para obtener el correo electrónico es necesaria una consulta adicionar al Graph API de Facebook

Obtener el correo y otros datos

GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {  
    @Override
    public void onCompleted(JSONObject object, GraphResponse response) {
        String email = null;
        try {
            email = object.getString("email");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        // ya tenemos el email aquí
     }
});
Bundle parameters = new Bundle();  
// Solicitamos el email y otro datos
parameters.putString("fields", "id, first_name, last_name, email, gender, birthday, location");  
request.setParameters(parameters);  
request.executeAsync();  

Si tienes alguna duda o consulta puedes dejarla en los comentarios. También te puede interesar como realizar un Login con Google en Android.

Daniel Alvarez

Software engineer, developer and producer of native mobile applications for Android and iOS, Angular, Firebase. Teacher. Speaker. Creating bots.