¿Cómo crear un inicio de sesión de Facebook usando la aplicación de Android?

Este artículo explica cómo crear una aplicación de Android con un inicio de sesión de Facebook.

Hay varias funciones de inicio de sesión social para usar en las aplicaciones de Android. aquí aprenderemos inicio de sesión social usando Facebookpor lo que es necesaria Integración SDK de Facebook en el proyecto para usar el inicio de sesión de Facebook.

A continuación se muestran los diferentes pasos sobre cómo hacerlo;

  1. Lo primero que debes hacer es tener Cuenta de desarrollador de Facebook y luego crear una nueva aplicación.

  2. Instalación Estudio Android(>= 3.0) y luego abra/cree un proyecto en el que desee agregar el inicio de sesión de Facebook.
  3. Agregue el siguiente código en su proyecto Scripts de Gradle -> build.gradle (Proyecto).



    buildscript{
        repositories {
            jcenter()
        }
    }

  4. Ahora, ingresa el siguiente código Scripts de Gradle -> build.gradle (Módulo:aplicación) con el ultima versión del SDK de inicio de sesión de Facebook en su proyecto.



    dependencies {
         implementation 'com.facebook.android:facebook-android-sdk:5.0.0'
    }

  5. Sincroniza tu proyecto
  6. Ahora abierto aplicación -> res -> valores -> cadenas.xml archivo para agregar las siguientes líneas y en cambio la [APP_ID] con tu APP_ID, que puedes encontrar en la consola de desarrolladores de Facebook.



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

  7. Abierto aplicación -> manifestación -> AndroidManifest.xml archivo y agregue esta línea fuera del elemento de solicitud.



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

  8. agregar a esto metadatos elemento dentro del elemento de solicitud i AndroidManifest.xml expediente:



    <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" />

  9. Ahora lo primero que necesitas Clave hashasí que ponga estas líneas en su clase de acción antes del código de inicio de sesión de Facebook:



    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
     
        ... printHashKey();
        ...
    }
     
    ...
     
        public void
        printHashKey()
    {
     
        // Add code to print out the key hash
        try {
     
            PackageInfo info
                = getPackageManager().getPackageInfo(
                    "com.android.facebookloginsample",
                    PackageManager.GET_SIGNATURES);
     
            for (Signature signature : info.signatures) {
     
                MessageDigest md
                    = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("KeyHash:",
                      Base64.encodeToString(
                          md.digest(),
                          Base64.DEFAULT));
            }
        }
     
        catch (PackageManager.NameNotFoundException e) {
        }
     
        catch (NoSuchAlgorithmException e) {
        }
    }

  10. Ahora ejecute su aplicación en su emulador o dispositivo conectado. Verá el valor Key Hash impreso en logcat, guárdelo para necesidades posteriores.
  11. Vamos Consola para desarrolladores de Facebook y elige configuración -> Básico -> Agregar plataforma (en la parte inferior de la página) y se abre para elige una plataforma. Elegir Androide como plataforma.
  12. Ponga su nombre del paquete del proyecto en ‘Nombre del paquete de Google Play’. Agregue el nombre de la clase donde se realizará el inicio de sesión en el proyecto como ‘Actividad de inicio de sesión’ y también agregue el valor hash clave ‘Clave hash’.

    Página de detalles de inicio de sesión de Facebook Android

  13. Ahora de vuelta al estudio de Android, agregue este botón personalizado en su *.xml archivo de diseño:



    <Button
        android:id="@+id/button_facebook"
        style="@style/FacebookLoginButton"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="15dp"
        android:text="Continue With Facebook"
        android:textAllCaps="false"
        android:textColor="@android:color/white" />

  14. Introduce este código aplicación -> res -> estilos.xml expediente:



    <style name="FacebookLoginButton">
        <item name="android:textSize">14sp</item>
        <item name="android:background">@drawable/facebook_signin_btn</item>
        <item name="android:paddingTop">11dp</item>
        <item name="android:paddingBottom">11dp</item>
        <item name="android:paddingLeft">15dp</item>
        <item name="android:layout_marginLeft">3dp</item>
        <item name="android:layout_marginRight">3dp</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">center_horizontal</item>
    </style>

  15. Puede personalizar este botón en consecuencia o, en lugar del botón personalizado anterior, también puede usar el botón predeterminado de Facebook como botón de inicio de sesión de Facebook.
  16. Nombra un archivo extraíble ‘bg_button_facebook.xml’ en aplicación -> res -> dibujable carpeta y pegue el siguiente código:



    <?xml version="1.0" encoding="utf-8"?>
    <shape
    android:shape="rectangle">
        <corners android:radius="5dp"/>
        <solid android:color="#3B5998"/>
    </shape>

  17. Ahora ingrese el botón archivo *.java y algo de código para empezar a utilizar el SDK de Facebook además:



    // Declare variables
    private Button mButtonFacebook;
     
    private CallbackManager callbackManager;
    private LoginManager loginManager;
     
    ...
     
        @Override
        protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
     
        ...
     
            mButtonFacebook
            = findViewById(R.id.button_facebook);
        FacebookSdk.sdkInitialize(MainActivity.this);
        callbackManager = CallbackManager.Factory.create();
        facebookLogin();
     
        ...
     
            mButtonFacebook.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v)
                {
                    loginManager.logInWithReadPermissions(
                        MainActivity.this,
                        Arrays.asList(
                            "email",
                            "public_profile",
                            "user_birthday"));
                }
            });
        ...
    }
     
    ...

  18. Agregar ‘facebookIniciar sesión’ método externo onCreate() en el archivo java. Este es el código para Respuesta de inicio de sesión de Facebook.



    public void facebookLogin()
    {
     
        loginManager
            = LoginManager.getInstance();
        callbackManager
            = CallbackManager.Factory.create();
     
        loginManager
            .registerCallback(
                callbackManager,
                new FacebookCallback<LoginResult>() {
     
                    @Override
                    public void onSuccess(LoginResult loginResult)
                    {
                        GraphRequest request = GraphRequest.newMeRequest(
     
                            loginResult.getAccessToken(),
     
                            new GraphRequest.GraphJSONObjectCallback() {
     
                                @Override
                                public void onCompleted(JSONObject object,
                                                        GraphResponse response)
                                {
     
                                    if (object != null) {
                                        try {
                                            String name = object.getString("name");
                                            String email = object.getString("email");
                                            String fbUserID = object.getString("id");
     
                                            disconnectFromFacebook();
     
                                            // do action after Facebook login success
                                            // or call your API
                                        }
                                        catch (JSONException | NullPointerException e) {
                                            e.printStackTrace();
                                        }
                                    }
                                }
                            });
     
                        Bundle parameters = new Bundle();
                        parameters.putString(
                            "fields",
                            "id, name, email, gender, birthday");
                        request.setParameters(parameters);
                        request.executeAsync();
                    }
     
                    @Override
                    public void onCancel()
                    {
                        Log.v("LoginScreen", "---onCancel");
                    }
     
                    @Override
                    public void onError(FacebookException error)
                    {
                        // here write code when get error
                        Log.v("LoginScreen", "----onError: "
                                                 + error.getMessage());
                    }
                });
    }

  19. Ahora agregue otro método requerido ‘desconectarse de Facebook’ para la integración de inicio de sesión, agregue esto al exterior de onCreate también. Esto se usa para desconectar una aplicación de Facebook porque no necesita permanecer conectada.



    public void disconnectFromFacebook()
    {
        if (AccessToken.getCurrentAccessToken() == null) {
            return; // already logged out
        }
     
        new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/me/permissions/",
            null,
            HttpMethod.DELETE,
            new GraphRequest
                .Callback() {
                    @Override
                    public void onCompleted(GraphResponse graphResponse)
                    {
                        LoginManager.getInstance().logOut();
                    }
                })
            .executeAsync();
    }

  20. Agregar ‘en el resultado de la acción’ método externo onCreate en la misma actividad:



    @Override
    protected void onActivityResult(int requestCode,
                                    int resultCode,
                                    Intent data)
    {
     
        // add this line
        callbackManager.onActivityResult(
            requestCode,
            resultCode,
            data);
     
        super.onActivityResult(requestCode,
                               resultCode,
                               data);
    }

  21. Ahora ya ha terminado con la codificación. Ejecute su aplicación en su dispositivo o emulador. Tu puedes ahora iniciar sesión con Facebook también en su aplicación.
  22. Si usted es Quieres subir tu aplicación a Play Storeentonces tienes que habilitar ‘estado’ de la sección superior derecha en Facebook para desarrolladores, para este primero agregar URL de política de privacidad en ajustes -> Básico como se muestra en la captura de pantalla a continuación. Ahora guarde los cambios y habilite el estado desde el tablero.

    Política de privacidad iniciar sesión url de Facebook

Mis notas personales
flecha_caer_arriba

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *