Google Login su Android
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Introduzione
Sezione intitolata “Introduzione”In questo guide, imparerai a configurare il login con Google con Capgo Social Login per Android. Assumo che tu abbia già letto la guida di configurazione generale.
Utilizzo del login con Google su Android
Sezione intitolata “Utilizzo del login Google su Android”In questo capitolo, imparerai a configurare il login Google su Android.
-
Creare un ID client Android.
-
Clicca sulla barra di ricerca
-
Cerca
credentialse clicca sulAPIs and Servicesuno (numero 2 nell'immagine di screenshot)
-
Clicca sul
create credentials
-
Scegli
OAuth client ID
-
Scegli il
Androidtipo di applicazione
-
Apre Android Studio
-
Al fondo della finestra di navigazione, trova la
Gradle Scripts
-
Cerca
build.gradleper il moduloapp
-
Copia il
android.defaultConfig.applicationIdQuesto sarà il tuopackage namein la console di Google
-
Ora, apri il terminale. Assicurati di essere nel
androiddel tuo app e esegui./gradlew signInReport
- Scorri verso l'alto di questo comando. Dovresti vedere il seguente. Copia il
SHA1.
- Ora, torna alla console di Google. Inserisci il tuo
applicationIdcome ilPackage Namee il tuo SHA1 nel campo del certificato e cliccacreate
-
-
Crea un client web (questo è richiesto per Android)
-
Vai al
Create credentialspagina nel Console di Google -
Imposta il tipo di applicazione su
Web
-
Clicca su
Create
-
Copia l'ID del client, utilizzerai questo come il
webClientIdin your JS/TS code
-
-
__CAPGO_KEEP_0__
MainActivity-
Per favore, apri il tuo app in Android Studio. Puoi eseguire
cap open android -
Cerca
MainActivity.java-
Apre il
appcartella
-
Cerca
java
-
Cerca il tuo
MainActivity.javae clicca su di esso
-
-
Modifica
MainActivity.java. Per favore, aggiungi il seguente codeimport 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 {@Overridepublic 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@Overridepublic void IHaveModifiedTheMainActivityForTheUseWithSocialLoginPlugin() {}} -
Salva il file
-
-
Utilizza Google Login nella tua applicazione
-
In primo luogo, importa
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
Chiamare inizializza. 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',}})}) -
Chiamare
SocialLogin.login. Create a button and run the following code on click.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
Configura l'emulatore per il testing
-
Vai dentro
Device managere clicca sul pulsante più
-
Creare un dispositivo virtuale
-
Seleziona qualsiasi dispositivo con un
Play Storeicono
Evidentemente, il
pixel 8supporta iPlay Storeservizi -
Clicca
next
-
Assicurati che l'immagine del sistema sia del tipo
Google Play. DEVE essere del tipoGoogle Play
-
Clicca successivo
-
Conferma il tuo dispositivo. Puoi chiamare il tuo emulatore come preferisci
-
Entrare in
Device ManagerE avviare il tuo simulatore
-
Dopo l'avvio del simulatore, entra nelle sue impostazioni
-
Entrare in
Google Play
- Clicca
UpdateE attendi circa 60 secondi
-
-
Testa la tua applicazione
Se hai fatto tutto correttamente, dovresti vedere il flusso di login di Google che funziona correttamente:
Risolvere i problemi
Sezione intitolata “Risolvere i problemi”Se hai dei problemi, confronta per primo la configurazione della tua app con i valori del Cloud Console di Google. Le fallite di Google Sign-In su Android sono spesso causate da un nome del pacchetto, un SHA-1 o un ID client non corrispondenti.
Manager delle credenziali, SHA-1 e Firebase
Sezione intitolata “Manager delle credenziali, SHA-1 e Firebase”Sul sistema operativo Android, questo plugin utilizza il Manager delle credenziali di Google (androidx.credentials e Accedi con Google), non il legacy GoogleSignInClient API. Errore di Logcat come GetCredentialCustomException: [28444] Developer console is not set up correctly da quella pila.
Filtra Logcat con GoogleProvider o CapgoSocialLogin Per confrontare le alternative di aggiornamento in tempo reale di Capacitor. webClientId o per migrare verso Appflow.
o per scoprire le funzionalità di Capawesome.
o per scoprire come possiamo aiutarti con i nostri servizi di consulenza.Appflow o
| Dopo un tentativo di accesso fallito. Il plugin registra il nome del tuo pacchetto, l'hash SHA-1 di firma e un indirizzo email mascherato | così che puoi confrontarli con quelli del Cloud Console di Google. | Configurazione Google Cloud richiesta |
|---|---|---|
| Sezione intitolata “Configurazione Google Cloud richiesta” | Server / ID token audience | webClientId in SocialLogin.initialize() |
| su Android, uno per chiave di firma | Prova che il tuo APK è autorizzato a chiamare Google | Google Cloud Console solo. Non passa questo ID a webClientId |
Un errore comune è utilizzare l'ID del client Android come webClientId. Il Manager delle credenziali richiede l'ID del client Web lì. Il client Android ha bisogno solo del nome del pacchetto corretto e della SHA-1 registrati nella console.
Creare un client OAuth Android per ogni certificato che firma le build che testi:
- Debug: da
./gradlew signingReportper la variante di debug. - Release: dal APK o AAB che effettivamente installi.
- Play App Signing: da Play Console > Integrità dell'app > Certificato di firma dell'app. Questo è richiesto per le build di Play Store anche se il SHA-1 della chiave di caricamento è già registrato.
Google applicationId La android/app/build.gradle in .debug deve corrispondere esattamente al nome del pacchetto Android OAuth, compresi eventuali
suffisso. email Se lo schermo di consenso OAuth è in modalità Testing, aggiungi ogni account Google che testi sotto Audience > Utenti di test. La pubblicazione dell'applicazione in produzione non è necessaria per profile eassetlinks.jsonscopi. Gli Asset Digital (
) non sono necessari per l'accesso con Google tramite il Gestore delle credenziali.
I cambiamenti di Cloudflare possono richiedere fino a poche ore per propagarsi.
Errore 28444: Console dello sviluppatore non configurata correttamenteSottosezione intitolata “Errore 28444: Console dello sviluppatore non configurata correttamente” webClientId. Passa a questo checklist:
- Conferma
webClientIdè il client ID dell'applicazione Web e si conclude con.apps.googleusercontent.com. - Esegui l'app, riproduci il problema e leggi Logcat per
GoogleProvider,signingSha1=, epackage=. - In Google Cloud Console > Credenziali, apri il tuo client OAuth Android e verifica l'esatto nome del pacchetto e SHA-1.
- Se stai testando una versione di rilascio, registra il SHA-1 di quella versione, non solo il keystore di debug.
- Se l'app è distribuita attraverso Play Store, registra anche il SHA-1 di Play App Signing.
- Assicurati che i client Web e Android siano presenti nello stesso progetto Google Cloud.
- Se lo schermo di consenso è in modalità di testing, conferma che l'account Google sia un utente di testing.
- Attendi e riprova dopo le modifiche al console.
USER_CANCELLED Selezionando un account su un build di debug configurato in modo errato, può ancora esserci un disallineamento tra SHA-1 o ID del client. Correggi prima la configurazione del console sopra.
Estrai il SHA-1 dal build che installi.
Estrai il SHA-1 dal build che installiEstrazione del SHA-1 dal build che installi
cd android && ./gradlew signingReportCopia nel portapenne
keytool -printcert -jarfile android/app/release/app-release.apkCopia nel portapenne
adb install android/app/release/app-release.apkLeggere il risultato di accesso
Sottosezione intitolata “Leggere il risultato di accesso”Il token è inserito sotto result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Per Firebase Auth, crea le credenziali con questo idToken e utilizza l'ID del client Web come webClientId in initialize.
Se non riesci a ottenere il certificato SHA-1 di sviluppo, prova con un keystore personalizzato. Questo commento di issue spiega come aggiungere un keystore al tuo progetto.
Continua da Google Login su Android
Sezione intitolata “Continua con Google Login su Android”Se stai utilizzando Google Login su Android per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-login-social per la capacità nativa in Utilizza @capgo/capacitor-login-social @capgo/capacitor-login-social per il dettaglio di implementazione in @capgo/capacitor-login-social @capgo/capacitor-passkey per il dettaglio di implementazione in @capgo/capacitor-passkey @capgo/capacitor-biometria-nativa per il dettaglio di implementazione in @capgo/capacitor-biometria-nativa Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.