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ü:
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.