Saltar al contenido

Google Login en Android

En esta guía, aprenderá a configurar el inicio de sesión de Google con Capgo Social Login para Android. Supongo que ya ha leído el Guía de configuración general.

En esta parte, aprenderás a configurar el inicio de sesión de Google en Android.

  1. Crear un identificador de cliente Android.

    1. Haga clic en la barra de búsqueda

      Barra de búsqueda de Google Console
    2. Buscar por credentials y haga clic en el APIs and Services uno (número 2 en la captura de pantalla)

      Resultados de búsqueda mostrando opción de credenciales con APIs y Servicios destacados
    3. Haga clic en el create credentials

      Crear credenciales en el Console de Google
    4. Seleccione OAuth client ID

      Opción de ID de cliente OAuth en el menú de creación de credenciales
    5. Seleccione el Android Tipo de aplicación

      Selección del tipo de aplicación con opción de Android destacada
    6. Abra Android Studio

    7. En la parte inferior de la navegación, encuentre la Gradle Scripts

      Sección de scripts de Gradle en el navegador de proyecto de Android Studio
    8. Encuentre build.gradle para el módulo app

      archivo build.gradle (Módulo: app) en la sección de scripts de Gradle
    9. Copie el android.defaultConfig.applicationIdEsto será su package name en el panel de control de Google

      Archivo Build.gradle mostrando la configuración de applicationId
    10. Ahora, abra la terminal. Asegúrese de estar en el android carpeta de su aplicación y ejecute ./gradlew signInReport

    Terminal mostrando comando gradlew signInReport
    1. Desplácese hacia arriba en este comando. Debería ver lo siguiente. Copie el SHA1.
    Salida del terminal mostrando huella digital de certificado SHA1
    1. Ahora, regrese a la consola de Google. Ingrese su applicationId como Package Name y su SHA1 en el campo del certificado y haga clic create
    formulario de creación de cliente Android con campos de nombre de paquete y SHA1 rellenados
  2. Crear un cliente web (esto es necesario para Android)

    1. Vaya a la Create credentials página en Google Console

    2. Establezca el tipo de aplicación a Web

      selección de tipo de aplicación con opción Web destacada
    3. Haga clic Create

      formulario de creación de cliente web con botón Crear en la parte inferior
    4. Copie el ID del cliente, lo usará como el webClientId en su JS/TS code

      Detalles del ID del cliente mostrando ID del cliente web para copiar
  3. Modifica tu MainActivity

    1. Por favor, abre tu aplicación en Android Studio. Puedes ejecutar cap open android

    2. Encuentra MainActivity.java

      1. Abrir el app carpeta

        Carpeta de la aplicación en el navegador de proyecto de Android Studio
      2. Encuentra java

        Carpeta Java en la estructura de proyecto de Android Studio
      3. Encuentra tu MainActivity.java y haz clic en ella

        archivo MainActivity.java en la estructura de paquete
    3. Modificar MainActivity.java. Por favor, agregue el siguiente code

      import ee.forgr.capacitor.social.login.GoogleProvider;
      import ee.forgr.capacitor.social.login.SocialLoginPlugin;
      import ee.forgr.capacitor.social.login.ModifiedMainActivityForSocialLoginPlugin;
      import com.getcapacitor.PluginHandle;
      import com.getcapacitor.Plugin;
      import android.content.Intent;
      import android.util.Log;
      import com.getcapacitor.BridgeActivity;
      // ModifiedMainActivityForSocialLoginPlugin is VERY VERY important !!!!!!
      public class MainActivity extends BridgeActivity implements ModifiedMainActivityForSocialLoginPlugin {
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      if (requestCode >= GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MIN && requestCode < GoogleProvider.REQUEST_AUTHORIZE_GOOGLE_MAX) {
      PluginHandle pluginHandle = getBridge().getPlugin("SocialLogin");
      if (pluginHandle == null) {
      Log.i("Google Activity Result", "SocialLogin login handle is null");
      return;
      }
      Plugin plugin = pluginHandle.getInstance();
      if (!(plugin instanceof SocialLoginPlugin)) {
      Log.i("Google Activity Result", "SocialLogin plugin instance is not SocialLoginPlugin");
      return;
      }
      ((SocialLoginPlugin) plugin).handleGoogleLoginIntent(requestCode, data);
      }
      }
      // This function will never be called, leave it empty
      @Override
      public void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}
      }
    4. Guardar el archivo

  4. Utilice el inicio de sesión de Google en su aplicación

    1. Primero, importe SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. Llame a initialize. Esto debe llamarse solo una vez.

      // onMounted is Vue specific
      // webClientId is the client ID you got in the web client creation step not the android client ID.
      onMounted(() => {
      SocialLogin.initialize({
      google: {
      webClientId: '673324426943-avl4v9ubdas7a0u7igf7in03pdj1dkmg.apps.googleusercontent.com',
      }
      })
      })
    3. Llame a SocialLogin.login. Crea un botón y ejecuta el siguiente code al hacer clic.

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. Configure el emulador para pruebas

    1. Ir a Device manager y haz clic en el botón de más

      Administrador de dispositivos en Android Studio con el botón de más destacado
    2. Crear un dispositivo virtual

      Crear botón de dispositivo virtual en la configuración de dispositivo virtual
    3. Seleccione cualquier dispositivo con un Play Store icono

      Selección de hardware que muestra dispositivos con soporte de tienda de aplicaciones

      Como puede ver, el pixel 8 soporta los Play Store servicios

    4. Haga clic next

      Botón siguiente en el asistente de creación de dispositivo
    5. Asegúrese de que el imagen del sistema sea del tipo Google Play. DEBE SER DE TIPO de tipo Google Play

      Selección de imagen del sistema mostrando imágenes tipo Google Play
    6. Haga clic en siguiente

      Botón siguiente en pantalla de selección de imagen del sistema
    7. Verifique su dispositivo. Puede nombrar su emulador como prefiera

      Pantalla de verificación de configuración de dispositivo con botón de finalización
    8. Ir a Device Manager y arranque su simulador

      Administrador de dispositivos con dispositivo virtual listado y botón de play
    9. Después de que arranque el simulador, vaya a sus ajustes

      Emulador de Android mostrando aplicación de ajustes
    10. Ir a Google Play

    Pantalla de ajustes con opción de Google Play
    1. Haga clic Update y espere unos 60 segundos
    Pantalla de actualización de Google Play con botón de Actualizar
  6. Pruebe su aplicación

    Si hizo todo correctamente, debería ver el flujo de inicio de sesión de Google funcionando correctamente:

    Demostración del flujo de inicio de sesión de Google en Android mostrando el proceso de inicio de sesión y la autenticación exitosa

Si tiene algún problema, por favor revise los Github problemas.

Los problemas con el inicio de sesión de Google son SIEMPRE relacionado con el certificado SHA1.

Si no puede obtener el certificado de desarrollo SHA1, intente usar un keystore personalizado. Aquí hay un comentario explicando cómo agregar un keystore a su proyecto.

Si está utilizando Google Login en Android para planificar la autenticación y los flujos de cuenta, conéctelo con Usando @capgo/capacitor-social-login para la capacidad nativa en Usando @capgo/capacitor-social-login, @capgo/capacitor-social-login para el detalle de implementación en @capgo/capacitor-login-social @capgo/capacitor-clave-de-llave para el detalle de implementación en @capgo/capacitor-clave-de-llave @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Autenticación de dos factores para el detalle de implementación en Autenticación de dos factores.