Kami menghentikan Platform Perpustakaan Google Sign-In JavaScript untuk web . Untuk otentikasi dan user masuk, menggunakan Layanan Identity Google SDK baru untuk kedua Web dan Android sebagai gantinya .

Mengintegrasikan Google Sign-In ke Aplikasi Android Anda

Untuk mengintegrasikan Google Sign-In ke dalam aplikasi Android Anda, konfigurasikan Google Sign-In dan tambahkan tombol ke tata letak aplikasi Anda yang memulai alur masuk.

Sebelum kamu memulai

Konfigurasi proyek Google API Konsol dan mengatur proyek Android Studio Anda .

Konfigurasikan Google Sign-in dan objek GoogleSignInClient

  1. Dalam tanda-aktivitas ini Anda onCreate metode, configure Google Sign-In untuk meminta data pengguna yang dibutuhkan oleh aplikasi Anda. Misalnya, untuk mengkonfigurasi Google Sign-In ke ID pengguna permintaan dan informasi profil dasar, membuat GoogleSignInOptions objek dengan DEFAULT_SIGN_IN parameter. Ke alamat email pengguna permintaan juga, menciptakan GoogleSignInOptions objek dengan requestEmail pilihan.

    // 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 untuk meminta lingkup tambahan untuk mengakses Google API, tentukan mereka dengan requestScopes . Untuk pengalaman pengguna terbaik, saat masuk, hanya minta cakupan yang diperlukan agar aplikasi Anda berfungsi minimal. Minta cakupan tambahan apa pun hanya saat Anda membutuhkannya, sehingga pengguna Anda melihat layar izin dalam konteks tindakan yang mereka lakukan. Lihat Meminta Scopes tambahan .

  2. Kemudian, juga dalam Anda masuk kegiatan ini onCreate metode, membuat GoogleSignInClient objek dengan pilihan yang Anda tentukan.

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

Periksa pengguna masuk yang ada

Dalam kegiatan Anda onStart metode, memeriksa apakah pengguna sudah masuk 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 mengembalikan GoogleSignInAccount objek (bukan null ), pengguna sudah masuk ke aplikasi Anda dengan Google. Perbarui UI Anda sesuai itu—yaitu, sembunyikan tombol masuk, luncurkan aktivitas utama Anda, atau apa pun yang sesuai untuk aplikasi Anda.

Jika GoogleSignIn.getLastSignedInAccount kembali null , pengguna belum masuk ke aplikasi Anda dengan Google. Perbarui UI Anda untuk menampilkan tombol Masuk dengan Google.

Tambahkan tombol Masuk dengan Google ke aplikasi Anda

  1. Tombol masuk Google standar Tambahkan SignInButton dalam 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 Anda menggunakan tanda-default tombol grafis bukannya memberikan sendiri masuk aset tombol Anda, Anda dapat menyesuaikan ukuran tombol ini dengan setSize metode.

    // Set the dimensions of the sign-in button.
    SignInButton signInButton = findViewById(R.id.sign_in_button);
    signInButton.setSize(SignInButton.SIZE_STANDARD);
    
  3. Dalam kegiatan Android (misalnya, dalam onCreate metode), daftar tombol Anda OnClickListener untuk masuk pengguna ketika diklik:

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

Mulai alur masuk

  1. Gambar pemilih akun Masuk Dalam kegiatan ini onClick metode, pegangan masuk tombol keran dengan menciptakan tanda-dalam maksud dengan getSignInIntent metode, dan memulai maksud 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 maksud akan meminta pengguna untuk memilih akun Google untuk masuk. Jika Anda meminta lingkup luar profile , email , dan openid , pengguna juga diminta untuk memberikan akses ke sumber daya yang diminta.

  2. Setelah pengguna masuk, Anda bisa mendapatkan GoogleSignInAccount objek bagi pengguna dalam kegiatan ini onActivityResult metode.

    @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);
        }
    }

    The GoogleSignInAccount objek berisi informasi tentang pengguna yang masuk, 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 , Google ID pengguna (untuk digunakan client-side) dengan getId , dan ID tanda untuk pengguna dengan getIdToken . Jika Anda harus lulus saat pengguna yang masuk ke server backend, mengirim ID token untuk backend server Anda dan memvalidasi token di server.