Accesso Google su Android
Copia una richiesta 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.
-
Crea un ID client Android.
-
Clicca sulla barra di ricerca
-
Cerca
credentialse clicca sulAPIs and Servicesuno (numero 2 nella schermata)
-
Clicca sul
create credentials
-
Seleziona
OAuth client ID
-
Seleziona 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 namenel 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 al 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 alla
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 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',}})}) -
Chiamare
SocialLogin.loginCrea un pulsante e esegui il seguente code al click.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
Configura l'emulatore per il testing
-
Vai in
Device managere clicca sul pulsante più
-
Creare un dispositivo virtuale
-
Scegli qualsiasi dispositivo con un
Play Storeicon
Come puoi vedere, il
pixel 8supporta ilPlay 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:
Risoluzione dei problemi
Sezione intitolata “Risoluzione dei problemi”Se hai 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.
Gestore delle credenziali, SHA-1 e Firebase
Sezione intitolata “Gestore delle credenziali, SHA-1 e Firebase”Su Android, questo plugin utilizza il Gestore 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 come Capawesome può aiutarti.
o per scoprire come possiamo aiutarti con i nostri servizi di consulenza.Appflow o
| Dopo un fallito accesso. Il plugin registra il tuo nome del pacchetto, l'hash SHA-1 di firma e un mascherato | così puoi confrontarli con il 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 | solo nel Cloud Console di Google. Non passare questo ID a webClientId |
Un errore comune è utilizzare l'ID del client Android come webClientId. Il Credential Manager richiede l'ID del client Web lì. Il client Android ha bisogno solo del nome del pacchetto corretto e della chiave SHA-1 registrati nel console.
Creare un client OAuth Android per ogni certificato che firma le build che testi:
- Da
./gradlew signingReportper la variante di debug. - Da l'APK o AAB che effettivamente installi.
- Da Play Console > App integrity > App signing key certificate. Questo è richiesto per le build di Play Store anche se il tuo upload key SHA-1 è già registrato.
Google applicationId il android/app/build.gradle deve corrispondere esattamente al nome del pacchetto Android OAuth, compresi eventuali .debug suffisso.
Se lo schermo di consenso OAuth è in modalità Testing, aggiungi ogni account Google che testi sotto Utenti > Test. email La pubblicazione dell'applicazione in produzione non è necessaria per profile eassetlinks.jsonscopi. Gli Asset Digital (
) non sono necessari per l'accesso con Google tramite 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 codice cliente 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 > Credentials, apri il tuo client OAuth Android e verifica il nome pacchetto esatto 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 firma dell'app di Play.
- Assicurati che gli 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 test.
- Attendi e riprova dopo le modifiche al console.
USER_CANCELLED Selezionando un account su un build di debug configurato male, potrebbe 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 installiBuild di debug o locali:
cd android && ./gradlew signingReportAPK di rilascio firmata:
keytool -printcert -jarfile android/app/release/app-release.apkAggiungi quel SHA-1 a un client OAuth Android con lo stesso nome del pacchetto, reinstalla lo stesso APK firmato e riprova:
adb install android/app/release/app-release.apkLeggere il risultato di accesso
Sezione intitolata “Leggere il risultato di accesso”I token sono nidificati 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 puoi ottenere il certificato SHA-1 di sviluppo, prova 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-biometrica-nativa per il dettaglio di implementazione in @capgo/capacitor-biometrica-nativa Autenticazione a due fattori per la dettagliata implementazione in Autenticazione a due fattori.