Como hacer un login con la api de facebook en android studio

Hola a todos, hace un par de días me escribieron, pidiendo un tutorial de como hacer un login con la api de facebook, pues habían algunos tutoriales, por ahí pero no funcionaban… sin mas rodeos empezamos:

api facebook

 

 

 

Como hacer un login con la api de facebook en android studio

 

Que necesitamos?

– Paciencia
– Una cuenta de facebook
– Android studio actualizado
Ahora continuaremos con los siguientes paso:

Ahora continuaremos con los siguientes paso:

1 Registrar la aplicación
Todas las aplicaciones que usan el SDK de Facebook deben estar registradas con Facebook. Ingresa al sitio de Desarrolladores de Facebook y da click en Agregar una nueva aplicación en la esquina superior derecha.

crear un nuevo identificador

Aparece un formulario y hay que llenarlo.
Si se fijan en la parte superior hay un identificador de la aplicación, esos numero guárdenlo o recuérdenlo es muy importante, lo usaremos mas adelante

 

identificador

Luego en la parte izquierda vallan a configuración-> básica. Les aparecerá una especie de formulario desplácense hacia abajo y encontraran +agregar plataforma.
En esta nueva ventana deberán elegir a android.

seleccionar plataforma

Ahora saldrá un nuevo formulario el cual deben llenarlo:
el nombre del paquete se refiere al nombre completo de la aplicación incluyendo el paquete, com.androidmorefast.moden.apploginfacebooksdk 

Nombre de la clase, deben escribir el paquete mas el nombre de la clase donde se usara la Api para este ejemplo usare el MainActivity
com.androidmorefast.moden.apploginfacebooksdk.mainActivity.
en el Hashes de clave debes obtenerlo , sino sabes como sigue esta guía.

 

Ahora si ya estamos listos para empezar con la aplicación,
2. Agrega el SDK de Facebook a tu Proyecto.
El SDK de Facebook está disponible en Maven Central. Para usar éste repositorio, debemos editar el archivo build.gradle en el directorio app de tu nuestro proyecto y agregarle el siguiente código antes de la lista de

dependencies:
repositories {
    mavenCentral()
}

También hay que agregar el SDK de Facebook al proyecto como una dependencia
compile.Agrega el siguiente código a la lista de dependencies:

compile ‘com.facebook.android:facebook-android-sdk:4.0.0’

 

3. Crear la parte gráfica de nuestra Aplicación
nuestro activity_main.xml tendrá lo siguiente:

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.
com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.androidmorefast.moden.apploginfacebooksdk.
    MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/info"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:textSize="18sp"
        />

    <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_centerInParent = "true"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="30dp" />

</RelativeLayout>

3. Crear nuestra Clase

Utilizaremos la clase MainActivity.java para crear los métodos y parámetros que nos servirán para poner a funcionar la aplicación.

public class MainActivity extends AppCompatActivity {

    private TextView info;
    private LoginButton loginButton;

    private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Inicializar Facebook SDK
        FacebookSdk.sdkInitialize(getApplicationContext());

        setContentView(R.layout.activity_main);

        // Establecer las devoluciones de llamada
        callbackManager = CallbackManager.Factory.create();
        loginButton = (LoginButton) findViewById(R.id.login_button);

        // Registrar las devoluciones de llamada
        loginButton.registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        info.setText(
                                "User ID: "
                                        + loginResult.getAccessToken().
                                        getUserId()
                                        + "n" +
                                        "Auth Token: "
                                        + loginResult.getAccessToken().
                                        getToken()
                        );
                        makeToast(loginResult.getAccessToken().
                        toString());
                    }

                    @Override
                    public void onCancel() {
                        String cancelMessage = "Login Cancelado.";
                        info.setText(cancelMessage);
                        makeToast(cancelMessage);
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        String errorMessage = "Login error.";
                        info.setText(errorMessage);
                        makeToast(errorMessage);
                    }
                }
        );

        // Inicializar el Texview
        info = (TextView) findViewById(R.id.info);

        if(isLoggedIn())
            info.setText("User ID: "
                    + AccessToken.getCurrentAccessToken().getUserId());
    }

    /**
     * Comprueba si el usuario ha iniciado sesión en Facebook y el 
     token de acceso está activo
     * @return
     */
    public boolean isLoggedIn() {
        AccessToken accessToken = AccessToken.getCurrentAccessToken();
        return (accessToken != null) && (!accessToken.isExpired());
    }

    /**
     * datos de interés en el gestor de devolución de llamada
     * @param requestCode
     * @param resultCode
     * @param data
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, 
    Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data)
        ;
    }

    /**
     * creamos los toast
     * @param text
     */
    private void makeToast(String text) {
        Toast.makeText(this, text, Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onResume() {
        super.onResume();

        //los logs de 'instalar' y 'aplicación activa' App Eventos.
        AppEventsLogger.activateApp(this);
    }

    @Override
    protected void onPause() {
        super.onPause();

        // Logs de'app desactivada' App Eventos.
        AppEventsLogger.deactivateApp(this);
    }
}

4. Agrega el ID de la aplicación de Facebook

El ID de la aplicación que recibiste cuando registrarte tu aplicación debería ser agregado como un string en el res/values/strings.xml de tu proyecto. Para éste tutorial, llama el string facebook_app_id.

<string name="facebook_app_id">123456908761030</string>

5. Editar el AndroidManifest

Lo que he puesto en rojo, es muy importante para que funcione la aplicación.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidmorefast.moden.apploginfacebooksdk" >
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <meta-data android:name="com.facebook.sdk.ApplicationId" 
        android:value="@string/facebook_app_id"/>
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.
                LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.facebook.FacebookActivity"
            android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orient
                ation"
            android:theme="@android:style/Theme.Translucent.
            NoTitleBar"
            android:label="@string/app_name" />
    </application>

</manifest>

6. Compila y Ejecuta

La aplicación esta terminada. al compilarse, verás el botón de login (acceso) de Facebook.


Presionar el botón login te lleva a la página de Facebook que te pide ingresar y autorizar la aplicación.

 

 

Después de ingresar exitosamente, el TextView desplegará el ID del usuario y el token de autenticación.

 

 

Con eso concluimos este tutorial espero lo disfruten.

 

 

 

 

 

 

8 comentarios en «Como hacer un login con la api de facebook en android studio»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat