Fehler verarbeiten

Fehler können in 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 den Bereich vergessen haben, wird in der JavaScript-Konsole Ihres Browsers eine Fehlermeldung wie unten angezeigt.

Fehler in der JavaScript-Konsole

OAuth-Konfigurationsfehler beheben

Möglicherweise sind Änderungen in der Google APIs-Konsole erforderlich, um einige Fehler zu beheben.

Ungültige OAuth-Parameterwerte

Wenn Sie OAuth-Parameter als ungültige Werte festlegen, z. B. ungültige Client-ID, Bereichskennungen oder Antworttypwerte, 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. Hier sehen Sie ein Beispiel für eine OAuth-Fehlerantwort.

  {
    "error":"access_denied"
  }

Im Folgenden finden Sie 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 keine vorkonfigurierte Einwilligung für die angeforderten Bereiche.

Das folgende Beispiel zeigt, wie die OAuth-Antworten für Erfolg und Fehler verarbeitet werden.

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

Nicht-OAuth-Fehler

OAuth definiert das Verhalten in folgenden Fällen nicht:

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

Diese Bibliothek erfasst diese Fehler und löst das error_callback aus, sofern festgelegt. Überprüfen Sie den Fehlertyp wie unten beschrieben. Andernfalls kann sich dies auf Ihre Codelogik auswirken, 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
});