Saltare al contenuto

Login di Google su Android

In questo guide, imparerai a configurare l'accesso Google con Capgo Social Login per Android. Assumo che tu abbia già letto la guida di configurazione generale.

In questa parte, imparerai a configurare l'accesso Google in Android.

  1. Crea un ID del client Android.

    1. Clicca sulla barra di ricerca

      barra di ricerca di Google Console
    2. Cerca credentials e clicca sul APIs and Services il numero 2 nella schermata

      Risultati della ricerca mostranti l'opzione delle credenziali con API e Servizi evidenziati
    3. Clicca sul create credentials

      Crea credenziali nel Google Console
    4. Seleziona OAuth client ID

      l'opzione ID del client OAuth nella menu di creazione delle credenziali
    5. Seleziona il Android tipo di applicazione

      Scegliere il tipo di applicazione con l'opzione Android evidenziata
    6. Apre Android Studio

    7. Al fondo del navigatore, trova la Gradle Scripts

      Sezione dei script Gradle nella navigazione di Android Studio
    8. Cerca build.gradle per il modulo app

      il file build.gradle (modulo: app) nella sezione dei script Gradle
    9. Copia il android.defaultConfig.applicationIdQuesto sarà il tuo package name nel console di Google

      File Build.gradle con configurazione di applicationId
    10. Now, apri il terminale. Assicurati di essere nella cartella del tuo app e esegui android Terminal mostrante il comando gradlew signInReport ./gradlew signInReport

    Scorri verso l'alto di questo comando. Dovresti vedere il seguente. Copia il
    1. Terminal output mostrante il fingerprint del certificato SHA1 SHA1.
    Now, torna indietro al Console di Google. Inserisci il
    1. come il applicationId e il tuo SHA1 nel campo del certificato e clicca Package Name Forma di creazione del client Android con campo del pacchetto e SHA1 compilati create
    Creare un client web (questo è richiesto per Android)
  2. Vai alla

    1. pagina in Console di Google Create credentials Create a web client (this is required for Android)

    2. Imposta il tipo di applicazione a Web

      Selezione del tipo di applicazione con l'opzione Web evidenziata
    3. Clicca Create

      Form di creazione del client Web con il pulsante Crea in fondo
    4. Copia l'ID del client, utilizzerai questo come il webClientId in il tuo JS/TS code

      Dettagli dell'ID del client mostrando l'ID del client Web da copiare
  3. Modifica il tuo MainActivity

    1. Per favore apri il tuo app in Android Studio. Puoi eseguire cap open android

    2. Trova MainActivity.java

      1. Apri il app cartella

        Cartella dell'app in navigatore del progetto Android Studio
      2. Trova java

        Cartella Java in struttura del progetto Android Studio
      3. Trova il tuo MainActivity.java e clicca su di esso

        File MainActivity.java nella struttura dei pacchetti
    3. Modifica MainActivity.javaInserisci il seguente 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. Salva il file

  4. Utilizza il login di Google nella tua applicazione

    1. In primo luogo, importa SocialLogin

      import { SocialLogin } from '@capgo/capacitor-social-login';
    2. Chiamare initialize. Questo dovrebbe essere chiamato solo una volta.

      // 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. Chiamare SocialLogin.loginCrea un pulsante e esegui il seguente code al click.

      const res = await SocialLogin.login({
      provider: 'google',
      options: {}
      })
      // handle the response
      console.log(JSON.stringify(res))
  5. Configura l'emulatore per le prove

    1. Accedi a Device manager e clicca sul pulsante plus

      Device Manager in Android Studio con il pulsante plus evidenziato
    2. Crea un dispositivo virtuale

      Pulsante Crea Dispositivo Virtuale nella Configurazione del Dispositivo Virtuale
    3. Seleziona qualsiasi dispositivo con un Play Store icona

      Selezione hardware mostrando dispositivi con supporto per il negozio Play

      Come puoi vedere, il pixel 8 supporta il Play Store Servizi

    4. Clicca next

      Pulsante successivo nel wizard di creazione del dispositivo
    5. Assicurati che l'immagine del sistema sia del tipo Google Play. DEVE ESSERE di tipo Google Play

      Seleziona immagine del sistema mostrando immagini di tipo Google Play
    6. Clicca successivo

      Pulsante successivo nella schermata di selezione dell'immagine del sistema
    7. Verifica la configurazione del dispositivo. Puoi chiamare il tuo emulatore come preferisci

      Schermata di verifica della configurazione del dispositivo con pulsante di completamento
    8. Vai dentro Device Manager e avvia il tuo simulatore

      Device Manager con dispositivo virtuale elencato e pulsante di riproduzione
    9. Dopo che il simulatore si è avviato, vai nelle sue impostazioni

      Emulatore Android che mostra l'app Impostazioni
    10. Vai nelle Google Play

    Schermata Impostazioni con opzione Google Play
    1. Clicca Update e aspetta circa 60 secondi
    Schermata di aggiornamento Google Play con pulsante Aggiorna
  6. Testa la tua applicazione

    Se hai fatto tutto correttamente, dovresti vedere il flusso di accesso Google che funziona correttamente:

    Demo del flusso di accesso Google su Android che mostra il processo di accesso e l'autenticazione riuscita

Se hai dei problemi, per favore consulta il Github problemi.

I problemi con l'accesso Google sono SEMPRE relativi al certificato SHA1.

Se non riesci ad ottenere il certificato SHA1 di sviluppo, prova a utilizzare un keystore personalizzato. Ecco un commento che spiega come aggiungere il keystore al tuo progetto.

Se stai utilizzando Google Login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Usando @capgo/capacitor-social-login per la capacità nativa in Usando @capgo/capacitor-social-login, @capgo/capacitor-social-login per il dettaglio di implementazione in @capgo/capacitor-social-login, @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric per il dettaglio di implementazione in @capgo/capacitor-native-biometric, e L'autenticazione a due fattori per i dettagli di implementazione nella autenticazione a due fattori.