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

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

JavaScript-Konsolenfehler

Fehler bei der OAuth-Konfiguration beheben

Zur Behebung einiger Fehler 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. die ungültige Client-ID, Bereichs-IDs oder Antworttypwerte, wird die OAuth-Fehlerseite angezeigt.

OAuth-Fehler

OAuth-Fehlerantworten

OAuth gibt möglicherweise eine Fehlerantwort zurück. In diesem Fall wird Ihre callback-Funktion mit der Fehlerantwort als Parameter ausgelöst. Im Folgenden finden Sie ein Beispiel für eine OAuth-Fehlerantwort.

  {
    "error":"access_denied"
  }

Dazu 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 Bereiche nicht vorkonfiguriert.

In diesem Beispiel wird gezeigt, wie die OAuth-Erfolgs- und ‑Fehlerantworten 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 den folgenden Fällen nicht:

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

In dieser Bibliothek werden diese Fehler erfasst und bei Bedarf die error_callback ausgelöst. Prüfen Sie den Fehlertyp. Andernfalls kann sich Ihre Codelogik ändern, wenn in dieser Bibliothek später neue Fehlertypen unterstützt werden.

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
});