Kami menghentikan Library Platform JavaScript Login dengan Google untuk web. Library tidak akan tersedia untuk didownload setelah tanggal penghentian 31 Maret 2023. Sebagai gantinya, gunakan Layanan Identitas Google yang baru untuk Web.
Secara default, Client ID yang baru dibuat kini diblokir agar tidak menggunakan Library Platform yang lebih lama, Client ID yang sudah ada tidak akan terpengaruh. Client ID baru yang dibuat sebelum 29 Juli 2022 dapat menetapkan `plugin_name` untuk mengaktifkan penggunaan Library Google Platform.

Mengintegrasikan Login dengan Google ke Aplikasi Android Anda

Untuk mengintegrasikan Login dengan Google ke dalam aplikasi Android, konfigurasikan Login dengan Google dan tambahkan tombol ke tata letak aplikasi Anda yang memulai alur login.

Sebelum memulai

Konfigurasikan project Konsol API Google dan siapkan project Android Studio Anda.

Mengonfigurasi Login dengan Google dan objek GoogleSignInClient

  1. Dalam metode onCreate aktivitas login, konfigurasikan Login dengan Google untuk meminta data pengguna yang diperlukan oleh aplikasi Anda. Misalnya, untuk mengonfigurasi Login dengan Google untuk meminta informasi ID dan profil dasar pengguna, buat objek GoogleSignInOptions dengan parameter DEFAULT_SIGN_IN. Untuk meminta alamat email pengguna juga, buat objek GoogleSignInOptions dengan opsi requestEmail.

    // Configure sign-in to request the user's ID, email address, and basic
    // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();

    Jika Anda perlu meminta cakupan tambahan untuk mengakses Google API, tentukan dengan requestScopes. Untuk pengalaman pengguna terbaik, saat login, hanya minta cakupan yang diperlukan agar aplikasi Anda berfungsi minimal. Minta cakupan tambahan hanya saat Anda membutuhkannya, sehingga pengguna melihat layar izin dalam konteks tindakan yang mereka lakukan. Lihat Meminta Cakupan Tambahan.

  2. Kemudian, juga pada metode onCreate aktivitas login, buat objek GoogleSignInClient dengan opsi yang Anda tetapkan.

    // Build a GoogleSignInClient with the options specified by gso.
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

Memeriksa pengguna yang sudah login

Dalam metode onStart aktivitas, periksa apakah pengguna sudah login ke aplikasi Anda dengan Google.

// Check for existing Google Sign In account, if the user is already signed in
// the GoogleSignInAccount will be non-null.
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
updateUI(account);

Jika GoogleSignIn.getLastSignedInAccount menampilkan objek GoogleSignInAccount (bukan null), pengguna telah login ke aplikasi Anda dengan Google. Update UI sesuai kebutuhan—yaitu, sembunyikan tombol login, luncurkan aktivitas utama, atau apa pun yang sesuai untuk aplikasi Anda.

Jika GoogleSignIn.getLastSignedInAccount menampilkan null, pengguna belum login ke aplikasi Anda dengan Google. Update UI Anda untuk menampilkan tombol Login dengan Google.

Menambahkan tombol Login dengan Google ke aplikasi Anda

  1. Tombol login Google standar Tambahkan SignInButton di tata letak aplikasi Anda:

    <com.google.android.gms.common.SignInButton
     android:id="@+id/sign_in_button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />
    
  2. Opsional: Jika menggunakan gambar tombol login default, bukan menyediakan aset tombol login Anda sendiri, Anda dapat menyesuaikan ukuran tombol dengan metode setSize.

    // Set the dimensions of the sign-in button.
    SignInButton signInButton = findViewById(R.id.sign_in_button);
    signInButton.setSize(SignInButton.SIZE_STANDARD);
    
  3. Pada aktivitas Android (misalnya, dalam metode onCreate), daftarkan OnClickListener tombol Anda untuk memproses login pengguna saat diklik:

    findViewById(R.id.sign_in_button).setOnClickListener(this);
    

Memulai alur login

  1. Gambar pemilih akun Login Dalam metode onClick aktivitas, tangani ketukan tombol login dengan membuat intent login dengan metode getSignInIntent, dan memulai intent dengan startActivityForResult.

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.sign_in_button:
                signIn();
                break;
            // ...
        }
    }
    
    private void signIn() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }

    Memulai intent akan meminta pengguna memilih akun Google untuk login. Jika Anda meminta cakupan di luar profile, email, dan openid, pengguna juga akan diminta untuk memberikan akses ke resource yang diminta.

  2. Setelah pengguna login, Anda bisa mendapatkan objek GoogleSignInAccount untuk pengguna dalam metode onActivityResult aktivitas.

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    
        // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            // The Task returned from this call is always completed, no need to attach
            // a listener.
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            handleSignInResult(task);
        }
    }

    Objek GoogleSignInAccount berisi informasi tentang pengguna yang login, seperti nama pengguna.

    private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
        try {
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);
    
            // Signed in successfully, show authenticated UI.
            updateUI(account);
        } catch (ApiException e) {
            // The ApiException status code indicates the detailed failure reason.
            // Please refer to the GoogleSignInStatusCodes class reference for more information.
            Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
            updateUI(null);
        }
    }

    Anda juga bisa mendapatkan alamat email pengguna dengan getEmail, ID Google pengguna (untuk penggunaan sisi klien) dengan getId, dan token ID untuk pengguna dengan getIdToken. Jika Anda perlu meneruskan pengguna yang saat ini login ke server backend, kirim token ID ke server backend Anda dan validasi token di server.