Enlace a facebook.
digitalDot diseño webLogo Diseño Web digitalDot

Integrar inicio de sesión de Facebook en Android

Inicio de sesión de Facebook en Android
Escrito por Digitaldot
13 de agosto de 2018
Tiempo de lectura 7 min
Contenido
Contenido
Contenido

El sistema operativo Android dispone de la función de inicio de sesión rápido para Facebook, esto es posible gracias a la herramienta SDK (Software Development Kit, lenguaje de programación Android) de Facebook que permite enlazarla con cualquier otra aplicación que disponga de ello. Esto se produce debido a la concesión de la aplicación de permisos para recoger información o realizar una actividad en Facebook con su nombre.

Para poder disponer de esta característica deberemos realizar los siguientes pasos:

1. Registro como desarrollador. De este modo convertirás tu cuenta de Facebook en una cuenta de desarrollador para poder registrar tu aplicación.

2. Descarga Facebook desde tu dispositivo.

3. Integra el SDK de Facebook. Para poder realizar este paso debemos saber que el SDK de Facebook se compone de distintas partes, la que necesitaras será “SDK de inicio de sesión con Facebook”. Para poder usarlo en tu proyecto necesitaras establecerlo como dependencia en Maven o bien descargándolo.

3.1. A través de Maven:

- En tu proyecto abre your_app > Gradle Scripts > build.gradle (Proyect) y después debes comprobar que aparezca lo siguiente:

buildscript { repositories {}}:jcenter()

- Seguidamente, abre your_app > Gradle Scripts > build.gradle (Module:app) y deberás incorporar la declaración de implementación a la sección dependencies{} para depender de la última versión del SDK de inicio de sesión con Facebook.

implementation 'com.facebook.android:facebook-login:[4,5)'

- Como último paso deberás compilar tu proyecto.

3.2. Edita los recursos y el manifiesto. La creación de cadenas para la identificación de tu aplicación de Facebook y para la habilitación de las pestañas personalizadas de Chrome. Por ello, deberás añadir la clase FacebookActivity a tu manifiesto de Android.

- Abriremos el archivo /app/res/values/strings.xml
- Añadiremos lo siguiente:

<string name="facebook_app_id">[APP_ID]</string><string name="fb_login_protocol_scheme">fb[APP_ID]</string>

- Abriremos el archivo /app/manifest/AndroidManifest.xml
- Añadiremos el elemento uses-permission seguido del elemento aplication:

<uses-permission android:name="android.permission.INTERNET"/>

- Por último, añadiremos meta-data siguiente, una actividad para Facebook y una actividad y un filtro de intent para las pestañas personalizadas de Chrome dentro del elemento application:

<meta-data android:name="com.facebook.sdk.ApplicationId"         android:value="@string/facebook_app_id"/>

   

    <activity android:name="com.facebook.FacebookActivity"

        android:configChanges=

                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"

        android:label="@string/app_name" />

    <activity

        android:name="com.facebook.CustomTabActivity"

        android:exported="true">

        <intent-filter>

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />

            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="@string/fb_login_protocol_scheme" />

        </intent-filter>

    </activity>

Desarrollo de APP en Murcia con inicio de sesión en Facebook

4. Asociación del nombre del paquete y de la clase predeterminada con la aplicación, proporción de los hashes de clave de desarrollo y activación para la aplicación, y activación del inicio de sesión único en la aplicación. Estos pasos deberán completarse al seleccionar una aplicación.

5. Cómo añadir el botón “iniciar sesión” de Facebook. La forma más rápida y sencilla de realizarlo es añadiendo LoginButton desde el SDK.

Este es un elemento de la interfaz de usuario que conforma las funciones disponibles en la clase LoginManager. Al clicar sobre el botón, se activará el inicio de sesión con los permisos encontrados en el LoginManager.

Mediante la realización de una búsqueda del estado de inicio de sesión mostrando el texto oportuno en función del estado de autentificación del sujeto. El código correspondiente para añadir el botón de inicio de sesión es el siguiente:

<com.facebook.login.widget.LoginButton    android:id="@+id/login_button"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_gravity="center_horizontal"

    android:layout_marginTop="30dp"

    android:layout_marginBottom="30dp" />

6. Registra una devolución de llamada. Deberás llamar a CallbackManager.Factory.create para establecer un administrador de devoluciones de llamada que gestione las después de inicio de sesión.

callbackManager = CallbackManager.Factory.create();

A la hora de añadir el botón a un fragmento, debes recargar tu actividad para poder usar ese fragmento, pudiendo personalizar las propiedades de y registrar una devolución de llamada en los métodos onCreate() o onCreateView().

Las propiedades a las que tienes acceso para personalizar se añaden LoginBehavior, DefaultAudience, ToolTipPopup.Style y los permisos de LoginButton.

    loginButton = (LoginButton) findViewById(R.id.login_button);    loginButton.setReadPermissions("email");

    // If using in a fragment

    loginButton.setFragment(this);   

    // Callback registration

    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {

        @Override

        public void onSuccess(LoginResult loginResult) {

            // App code

        }

        @Override

        public void onCancel() {

            // App code

        }

        @Override

        public void onError(FacebookException exception) {

            // App code

        }

    });

Para poder responder a un efecto de inicio de sesión, deberás registrar una devolución de llamada con las clases LoginManager o LoginButton. La devolución de llamada de la clase LoginManager se añadirá a tu actividad o a la forma onCreate() del fragmento:

    callbackManager = CallbackManager.Factory.create();    LoginManager.getInstance().registerCallback(callbackManager,

            new FacebookCallback<LoginResult>() {

                @Override

                public void onSuccess(LoginResult loginResult) {

                    // App code

                }

                @Override

                public void onCancel() {

                     // App code

                }

                @Override

                public void onError(FacebookException exception) {

                     // App code  

                }

    });

Si el inicio de sesión se ha realizado correctamente, el parámetro LoginResult tendrá el nuevo objeto AccessToken y los permisos concedidos o rechazados más recientes. No es necesario un parámetro registerCallback para realizarse un inicio de sesión correcto.

Puedes seguir los cambios del identificador de acceso actual con la clase AccessTokenTracker. Por último, el método onActivityResult, llama a callbackManager.onActivityResult para llevar los resultados del inicio de sesión a la clase LoginManager mediante la interfaz callbackManager.

      @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        callbackManager.onActivityResult(requestCode, resultCode, data);

        super.onActivityResult(requestCode, resultCode, data);

    }

Cualquier actividad y fragmento que incorpores con el inicio de sesión de la clase FacebookSDK o con el uso compartido de esta debe mandar el método onActivityResult a la interfaz callbackManager.

7. Comprueba el estado de inicio de sesión. Una única persona deberá estar conectada a ese inicio de sesión. La clase LoginManager establece los elementos AccessToken y Profile actuales para el sujeto conectado.

La clase FacebookSDK archiva estos datos en preferencias de uso compartido y los concuerda durante el inicio de sesión, pudiendo comprobar si el sujeto mantiene la sesión iniciada ya activa a través de AccessToken.getCurrentAccessToken() y Profile.getCurrentProfile().

Cargando el método AccessToken.getCurrentAccessToken con el SDK desde la memoria caché o desde un marcador de la aplicación cuando esta se inicia en frio. La comprobación de su validez se realiza desde el método onCreate de Activity:

AccessToken accessToken = AccessToken.getCurrentAccessToken();boolean isLoggedIn = accessToken != null && !accessToken.isExpired();

Después podrás realizar el inicio de sesión propiamente dicho, como sucede en el método OnClickListener de un botón personalizado:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile"));

Con todos estos pasos ya podrás disfrutar de tu inicio de sesión con Facebook en tu aplicación Android.

En digitalDot trabajamos a diario en el desarrollo de aplicaciones móviles multiplataforma si tienes alguna duda sobre la app de tu empresa o aún no tienes una y quieres crearla no dudes en ponerte en contacto con nuestro equipo de diseño y desarrollo de apps.

Noticias relacionadas sobre Aplicaciones Móviles

Cómo desarrollar aplicaciones móviles seguras desde el diseño

Cómo desarrollar aplicaciones móviles seguras desde el diseño

Hoy en día, las aplicaciones móviles y web son el canal principal de interacción con los usuarios, por lo que la seguridad no puede tratarse como una capa adicional. Hoy, desarrollar software seguro implica integrar la protección desde las primeras decisiones de diseño. En digitalDot trabajamos bajo un enfoque de…

Cómo ofuscar código en Android

Cómo Ofuscar código en Android

La ofuscación de código es una técnica importante para proteger tus aplicaciones móviles contra la ingeniería inversa y mejorar la seguridad de tu software. Desde digitalDot, te mostraremos cómo puedes ofuscar tu código en Android usando ProGuard y otras herramientas. Inicio del proceso de ofuscación A la hora de compilar…

Novedades sobre Android 14

Android 14: novedades para los desarrolladores de apps móviles

El lanzamiento de Android 14, originalmente programado para el martes 5 de septiembre de 2023, ha experimentado un aplazamiento hasta el próximo mes de octubre. Esta nueva fecha coincidirá con el evento de presentación del esperado Pixel 8, junto con el lanzamiento del flamante Pixel Watch 2, el reloj inteligente…

Estadísticas 2023 sobre aplicaciones móviles para tiendas online

Estadísticas 2023 sobre aplicaciones móviles para tiendas online

¿Estás pensando en tener una aplicación móvil para tu tienda online? ¿No lo has pensado todavía porque no te termina de convencer? El pasado miércoles 19 de julio, AppsFlyer publicó el informe “The State of eCommerce App Marketing”, un análisis profundo de las tendencias de la industria mundial para orientar…

¿Cómo crear una app de éxito?

¿Cómo crear un App de éxito?

Actualmente, miles de personas incorporan las aplicaciones móviles a sus rutinas por lo que, cada vez, están más integrados en nuestros hábitos diarios.Los investigadores MTM y Google han desarrollado un modelo para empresas, que les informa de cómo crear una “app exitosa”. Hablemos de ello. Poder integrar una App por…

Garantías para tiendas online y Apps

Garantías para tiendas online y APP de digitalDot

El 1 de enero del presente año (2022) entró en vigor una nueva normativa que afecta a la garantía legal de cualquier tipo de productos digitales, incluidas las garantías para tiendas online o aplicaciones móviles. digitalDot, como empresa de desarrollo de software debemos aplicar esta nueva normativa principalmente en algunas…

Desarrollo app Firebase - digitalDot

Acelera el desarrollo de tus apps con el marco de Firebase

Google nos trae nuevas características en su marco de desarrollo Firebase con lo que los desarrolladores podrán disminuir los tiempos de producción de sus aplicaciones. Firebase es una plataforma que fue creada por Google en 2014 para el desarrollo de aplicaciones web y móviles. Se encuentra integrada con Google Cloud…

Posicionamiento de aplicaciones móviles

¿Cómo posicionar una aplicación móvil?

Si estás leyendo este artículo es porque o tienes una app o estás a punto de tenerla y quieres saber cómo aparecer por encima del resto de aplicaciones móviles. En digitalDot, además de diseñar apps para Android y para iOS, os ayudamos a posicionarlas. En esta ocasión os vamos a…

Añadir Política de privacidad en la app Play Store

Cómo añadir la política de privacidad en nuestra App Play Store

Hace unos meses Google anunció una nueva normativa por la cual se obliga a incluir la política de privacidad a todas las aplicaciones a partir de abril de 2022. Este es un cambio ya hemos vivido como agencia de desarrollo web y software en el desarrollo de páginas, pero ahora…

1 2 3 6
crossmenuchevron-down