Google Identity Services (GIS) ist ein neuer Satz von APIs, mit denen Nutzer sichere Anmeldung und Registrierung – in einem einfach zu implementierenden Paket für Entwickler. In diesem Dokument wird eine neue Google Log-in API (Teil von GIS) beschrieben, mit der Sie Den Anmelde- oder Anmeldevorgang zu starten, wenn ein Nutzer auf eine „Über Google anmelden“ tippt Schaltfläche. Diese API kann anstelle der vorhandenen Google Log-in APIs für zur Anmeldung.
Sie sollten diese API nur verwenden, wenn der Nutzer ausdrücklich die Anmeldeabsicht zeigt mit Google. Verwenden Sie diese API beispielsweise, wenn Nutzer auf ein „Über Google anmelden“ klicken Schaltfläche in Ihrer App.
Sie sollten diese API nicht verwenden, um Nutzer zum Anmelden beim Start oder in der App aufzufordern auf einen anderen Trigger, z. B. das Hinzufügen eines Artikels zum Einkaufswagen. Für in diesen Anwendungsfällen Anmeldung und Registrierung über One Tap:
Wenn Sie den Google Log-in-Vorgang mit der neuen API starten, wird Folgendes angezeigt: Benutzeroberfläche:
Hinweis
Konfigurieren Sie ein Google API Console-Projekt und richten Sie Ihr Android Studio-Projekt ein.
Anmeldeanfrage stellen
Um mit der Identity API einen Google Log-in-Vorgang zu starten, erstellen Sie eine
GetSignInRequest
-Objekt. Bei einem SignInClient
-Objektaufruf
getSignInIntent
. Dieser Aufruf ist asynchron und liefert im Erfolgsfall eine
PendingIntent
, um das Dialogfeld zu öffnen.
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);
});
}
Anmeldeergebnisse verarbeiten
Rufen Sie in onActivityResult
eine SignInCredential
ab. Das SignInCredential
Das von getSignInCredentialFromIntent
zurückgegebene Objekt enthält Informationen
zu gültigen Anmeldedaten. Wenn sich der Nutzer aus irgendeinem Grund nicht anmelden kann, wird eine Meldung
ApiException
wird geworfen.
@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
});
Nach einer erfolgreichen Anmeldung werden immer der vollständige Name, die E-Mail-Adresse, und die URL des Profilbilds. Wenn Sie zusätzliche Informationen benötigen, können Sie die Nutzer in einen vollständigen Datenfluss für Profilinformationen einbinden.