Fehler verarbeiten

Fehler können auf verschiedenen Ebenen auftreten. Je nachdem, wo der Fehler auftritt, werden Sie möglicherweise auf unterschiedliche Weise benachrichtigt.

Erforderliche OAuth-Parameter fehlen

Wenn Sie die erforderlichen OAuth-Parameter wie „client_id“ oder „scope“ vergessen haben, wird in der JavaScript-Konsole Ihres Browsers eine Fehlermeldung wie die folgende angezeigt.

JavaScript-Konsole – Fehler

OAuth-Konfigurationsfehler beheben

Um einige Fehler zu beheben, sind möglicherweise Änderungen in der Google APIs Console erforderlich.

Ungültige OAuth-Parameterwerte

Wenn Sie ungültige Werte für OAuth-Parameter festlegen, z. B. eine ungültige Client-ID, Bereichs-IDs oder Werte für den Antworttyp, wird die OAuth-Fehlerseite angezeigt.

OAuth-Fehler

OAuth-Fehlerantworten

OAuth kann eine Fehlerantwort zurückgeben. In diesem Fall wird die Funktion callback mit der Fehlerantwort als Parameter ausgelöst. Im Folgenden findest du ein Beispiel für eine OAuth-Fehlerantwort.

  {
    "error":"access_denied"
  }

Einige Beispiele:

  1. Der Nutzer lehnt die OAuth-Anfrage ab.
  2. Bei einer OAuth-Anfrage mit dem Parameter prompt=none ist der Nutzer noch nicht authentifiziert und hat die Einwilligung für die angeforderten Zugriffsbereiche nicht vorab konfiguriert.

Im folgenden Beispiel wird gezeigt, wie mit erfolgreichen und fehlerhaften OAuth-Antworten umgegangen wird.

function myCallback(response) {
  if (response.error) {
    // Handle error response
    ... ...
  } else if (response.code) {
    // Handle success code response
    ... ...
  }
}

Nicht OAuth-Fehler

OAuth definiert das Verhalten nicht in folgenden Fällen:

  1. das Pop-up-Fenster nicht geöffnet wird.
  2. das Pop-up-Fenster geschlossen wird, bevor eine OAuth-Antwort zurückgegeben wird.

Diese Bibliothek erfasst diese Fehler und löst error_callback aus, falls festgelegt. Prüfen Sie den Fehlertyp wie unten dargestellt. Andernfalls kann Ihre Codelogik beeinträchtigt werden, wenn diese Bibliothek später neue Fehlertypen unterstützt.

function myErrorCallback(err) {
  if (err.type == 'popup_failed_to_open') {
    // The popup window is failed to open
    ... ...
  } else if (err.type == 'popup_closed') {
    // The popup window is closed before an OAuth response is returned
    ... ...
  }
}

const client = google.accounts.oauth2.initCodeClient({
  client_id: 'YOUR_GOOGLE_CLIENT_ID',
  scope: 'https://www.googleapis.com/auth/calendar.readonly',
  ux_mode: 'popup',
  callback: myCallback,
  error_callback: myErrorCallback
});