Google Login di Android
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bagian berjudul “Pendahuluan”Dalam panduan ini, Anda akan belajar cara mengatur Google Login dengan Capgo Social Login untuk Android. Saya asumsikan Anda sudah membaca panduan setup umum.
Menggunakan Google login di Android
Bagian berjudul “Menggunakan Google login di Android”Di bagian ini, Anda akan belajar cara mengatur Google login di Android.
-
Buat Android client ID.
-
Klik kolom pencarian
-
Cari
credentialsdan klik padaAPIs and Servicessatu (nomor 2 pada screenshot)
-
Klik pada
create credentials
-
Pilih
OAuth client ID
-
Pilih
Androidtipe aplikasi
-
Buka Android Studio
-
Di bagian paling bawah navigator, cari
Gradle Scripts
-
Cari
build.gradleuntuk modulapp
-
Salin
android.defaultConfig.applicationId. Ini akan menjadipackage namedi konsol Google
-
Sekarang, buka terminal. Pastikan Anda berada di
androidfolder aplikasi Anda dan jalankan./gradlew signInReport
- Scroll ke bagian atas perintah ini. Anda akan melihat hal berikut. Salin
SHA1.
- Sekarang, kembali ke Google Console. Masukkan
applicationIdsebagaiPackage Namedan SHA1 Anda di field sertifikat, lalu klikcreate
-
-
Buat web client (wajib untuk Android)
-
Buka halaman
Create credentialshalaman di Google Console -
Atur tipe aplikasi menjadi
Web
-
Klik
Create
-
Salin client ID, Anda akan menggunakannya sebagai
webClientIddi dalam JS/TS code Anda
-
-
Ubah
MainActivity-
Silakan buka aplikasi Anda di Android Studio. Anda bisa menjalankan
cap open android -
Cari
MainActivity.java-
Buka
appfolder
-
Cari
java
-
Cari
MainActivity.javadan klik pada item tersebut
-
-
Modifikasi
MainActivity.java. Silakan tambahkan code berikutimport 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() {}} -
Simpan file
-
-
Gunakan Google Login di aplikasi Anda
-
Pertama, import
SocialLoginimport { SocialLogin } from '@capgo/capacitor-social-login'; -
Panggil initialize. Ini hanya boleh dipanggil sekali.
// 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',}})}) -
Panggil
SocialLogin.login. Buat tombol dan jalankan code berikut saat diklik.const res = await SocialLogin.login({provider: 'google',options: {}})// handle the responseconsole.log(JSON.stringify(res))
-
-
Konfigurasi emulator untuk testing
-
Masuk ke
Device managerdan klik tombol plus
-
Buat virtual device
-
Pilih perangkat apa saja dengan
Play Storeikon
Seperti yang Anda lihat,
pixel 8mendukungPlay Storelayanan -
Klik
next
-
Pastikan bahwa image OS bertipe
Google Play. HARUS bertipeGoogle Play
-
Klik berikutnya
-
Konfirmasi perangkat Anda. Anda dapat memberi nama emulator sesuai keinginan
-
Masuk ke
Device Managerdan jalankan simulator Anda
-
Setelah simulator menyala, buka pengaturan di dalamnya
-
Masuk ke
Google Play
- Klik
Updatedan tunggu sekitar 60 detik
-
-
Tes aplikasi Anda
Jika Anda melakukan semuanya dengan benar, alur login Google seharusnya berfungsi dengan baik:
Pemecahan Masalah
Bagian berjudul “Troubleshooting”Jika ada masalah, bandingkan dulu konfigurasi aplikasi Anda dengan nilai di Google Cloud Console. Kegagalan Google Sign-In di Android biasanya disebabkan oleh ketidakcocokan package name, SHA-1, atau client ID.
Credential Manager, SHA-1, dan Firebase
Bagian berjudul “Credential Manager, SHA-1, dan Firebase”Di Android, plugin ini menggunakan Google Credential Manager (androidx.credentials dan Sign in with Google), bukan yang legacy GoogleSignInClient API. Error Logcat seperti GetCredentialCustomException: [28444] Developer console is not set up correctly berasal dari stack tersebut.
Filter Logcat dengan GoogleProvider atau CapgoSocialLogin setelah login gagal. Plugin ini mencatat package name, signing SHA-1, dan yang di-mask webClientId agar Anda bisa membandingkannya dengan Google Cloud Console.
Konfigurasi Google Cloud yang diperlukan
Bagian berjudul “Setup Google Cloud yang diperlukan”Anda memerlukan dua jenis OAuth 2.0 client ID di proyek Google Cloud yang sama:
| Tipe client | Digunakan untuk | Digunakan di |
|---|---|---|
| Aplikasi web | Server / audiens token ID | webClientId di SocialLogin.initialize() |
| Android, satu per signing key | Membuktikan APK Anda diizinkan memanggil Google | Hanya di Google Cloud Console. Jangan berikan ID ini ke webClientId |
Kesalahan umum adalah menggunakan Android client ID sebagai webClientId. Credential Manager membutuhkan Web client ID di sana. Android client hanya butuh package name dan SHA-1 yang benar yang sudah terdaftar di console.
Buat satu Android OAuth client untuk setiap sertifikat yang menandatangani build yang Anda tes:
- Debug: dari
./gradlew signingReportuntuk varian debug. - Release: dari APK atau AAB yang benar-benar Anda instal.
- Play App Signing: dari Play Console > App integrity > App signing key certificate. Ini wajib untuk build Play Store meskipun SHA-1 upload key Anda sudah terdaftar.
Panduan applicationId di android/app/build.gradle harus sama persis dengan package name Android OAuth client, termasuk .debug akhiran.
Jika OAuth consent screen dalam mode Testing, tambahkan setiap akun Google yang Anda gunakan untuk tes di Audience > Test users. Mempublikasikan aplikasi ke Production tidak diperlukan untuk email dan profile scopes. Digital Asset Links ("assetlinks.json) tidak diperlukan untuk Sign in with Google melalui Credential Manager.
Perubahan di Google Cloud mungkin butuh waktu beberapa jam untuk diterapkan.
Error 28444: Developer console belum dikonfigurasi dengan benar
Bagian berjudul “Error 28444: Developer console is not set up correctly”Ini hampir selalu berarti Google menolak kombinasi sertifikat signing APK yang terinstal, package name, dan webClientId. Ikuti checklist berikut:
- Konfirmasi
webClientIdadalah Web application client ID dan diakhiri dengan.apps.googleusercontent.com. - Jalankan aplikasi, ulangi error tersebut, dan cek Logcat untuk
GoogleProvider,signingSha1=, danpackage=. - Di Google Cloud Console > Kredensial, buka client OAuth Android Anda dan verifikasi package name serta SHA-1 yang tepat.
- Jika menguji release build, daftarkan SHA-1 dari build tersebut, bukan hanya dari debug keystore.
- Jika aplikasi didistribusikan melalui Play Store, daftarkan juga Play App Signing SHA-1.
- Pastikan client Web dan Android berada dalam satu proyek Google Cloud yang sama.
- Jika consent screen dalam status Testing, pastikan akun Google tersebut adalah test user.
- Tunggu dan coba lagi setelah ada perubahan di console.
USER_CANCELLED setelah memilih akun pada debug build yang salah konfigurasi, masalahnya bisa tetap berupa mismatch SHA-1 atau client ID. Perbaiki dulu setup console di atas.
Ekstrak SHA-1 dari build yang diinstal
Bagian berjudul “Ambil SHA-1 dari build yang Anda install”Debug atau build lokal:
cd android && ./gradlew signingReportAPK rilis yang ditandatangani:
keytool -printcert -jarfile android/app/release/app-release.apkTambahkan SHA-1 tersebut ke Android OAuth client dengan nama package yang sesuai, instal ulang signed APK yang sama, lalu uji kembali:
adb install android/app/release/app-release.apkMembaca hasil login
Bagian berjudul “Membaca hasil login”Tokens bersarang di bawah result:
const login = await SocialLogin.login({ provider: 'google' });const idToken = login.result?.idToken;Untuk Firebase Auth, buat kredensial dengan itu idToken dan gunakan Web client ID sebagai webClientId di initialize.
Jika Anda tidak bisa mendapatkan sertifikat SHA-1 development, coba gunakan custom keystore. Komentar issue ini menjelaskan cara menambahkan keystore ke proyek Anda.
Lanjutkan dari Google Login di Android
Bagian berjudul “Lanjutkan dari Google Login di Android”Jika Anda menggunakan Google Login di Android untuk merencanakan alur autentikasi dan akun, hubungkan dengan Menggunakan @capgo/capacitor-social-login untuk kapabilitas native di Menggunakan @capgo/capacitor-social-login, @capgo/capacitor-social-login untuk detail implementasi di @capgo/capacitor-social-login, @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, @capgo/capacitor-native-biometric untuk detail implementasi di @capgo/capacitor-native-biometric, dan Autentikasi dua faktor untuk detail implementasi di autentikasi dua faktor.