Yeni Google ile Oturum Açma API'sı

Google Kimlik Hizmetleri (GIS), kullanıcılara kolay ve sorunsuz bir şekilde güvenli oturum açma ve kaydolma olanaklarını kullanımınıza sunuyoruz. Bu dokümanda, kullanılabilecek yeni bir Google Sign in API (Coğrafi Bilgi Sistemi'nin parçası) Kullanıcı "Google ile oturum aç" düğmesine dokunduğunda oturum açma veya kaydolma akışını başlatır düğmesini tıklayın. Bu API, her şeyi öğreteceğim.

Bu API'yi yalnızca kullanıcı açıkça oturum açma niyeti gösterdiğinde kullanmalısınız. Google ile iletişime geçin. Örneğin, "Google ile oturum aç"ı tıkladığında bu API'yi kullanın. tıklıyorum.

Bu API'yi, uygulama başlatılırken veya kullanıcıdan oturum açmasını istemek için kullanmamalısınız. başka bir tetikleyiciye yanıt verirken (örneğin, alışveriş sepetine ürün eklemek) Örneğin, bu kullanım alanlarında One Tap ile oturum açma ve kaydolma.

Google ile Oturum Açma akışını yeni API ile başlattığınızda Kullanıcı arayüzü:

Google ile Oturum Açma

Başlamadan önce

Bir Google API Konsolu projesi yapılandırın ve Android Studio projenizi oluşturun.

Oturum açma isteğinde bulunma

Identity API'yi kullanarak Google ile Oturum Açma akışı başlatmak için GetSignInRequest nesne algılandı. Sonra, bir SignInClient nesne çağrısında getSignInIntent. Bu çağrı eşzamansız ve başarılı olduğunda İletişimi başlatmak için PendingIntent tuşlarına basın.

    private static final int REQUEST_CODE_GOOGLE_SIGN_IN = 1; /* unique request id */

    private void signIn() {
        GetSignInIntentRequest request =
            GetSignInIntentRequest.builder()
                .setServerClientId(getString(R.string.server_client_id))
                .build();

        Identity.getSignInClient(activity)
            .getSignInIntent(request)
            .addOnSuccessListener(
                    result -> {
                        try {
                            startIntentSenderForResult(
                                    result.getIntentSender(),
                                    REQUEST_CODE_GOOGLE_SIGN_IN,
                                    /* fillInIntent= */ null,
                                    /* flagsMask= */ 0,
                                    /* flagsValue= */ 0,
                                    /* extraFlags= */ 0,
                                    /* options= */ null);
                        } catch (IntentSender.SendIntentException e) {
                            Log.e(TAG, "Google Sign-in failed");
                        }
                    })
            .addOnFailureListener(
                    e -> {
                        Log.e(TAG, "Google Sign-in failed", e);
                    });
    }

Oturum açma sonuçlarını işleme

onActivityResult uygulamasında bir SignInCredential al. SignInCredential getSignInCredentialFromIntent işlevinden döndürülen nesne bilgi içeriyor hakkında daha fazla bilgi edinin. Kullanıcı herhangi bir nedenle giriş yapamazsa ApiException atıldı.

    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == Activity.RESULT_OK) {
            if (requestCode == REQUEST_CODE_GOOGLE_SIGN_IN) {
                try {
                    SignInCredential credential = Identity.getSignInClient(this).getSignInCredentialFromIntent(data);
                    // Signed in successfully - show authenticated UI
                    updateUI(credential);
                } catch (ApiException e) {
                    // The ApiException status code indicates the detailed failure reason.
                }
            }
        }
    }
private ActivityResultLauncher<IntentSenderRequest> loginResultHandler = registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
    // handle intent result here
});

Başarılı bir oturum açma işlemi, her zaman kullanıcının tam adını, e-posta adresini, ve profil resmi url'si. Ek bilgiye ihtiyacınız varsa, kullanıcıları doğrudan tam bir profil bilgileri akışına taşır.