Gérer les erreurs

Des erreurs peuvent se produire dans différentes couches. Vous pouvez recevoir des notifications de différentes manières, en fonction de l'emplacement de l'erreur.

Paramètres OAuth obligatoires manquants

Si vous oubliez de définir les paramètres OAuth requis, tels que le client_id ou le champ d'application, un message d'erreur semblable à celui ci-dessous s'affiche dans la console JavaScript de votre navigateur.

Erreurs de la console JavaScript

Corriger les erreurs de configuration OAuth

Des modifications dans la console Google APIs peuvent être nécessaires pour résoudre certaines erreurs.

Valeurs de paramètre OAuth non valides

Si vous définissez des valeurs non valides sur des paramètres OAuth, tels que l'ID client, les identifiants de champ d'application ou les valeurs de type de réponse non valides, la page d'erreur OAuth s'affiche.

Erreurs OAuth

Réponses d'erreur OAuth

OAuth peut renvoyer une réponse d'erreur, auquel cas votre fonction callback sera déclenchée avec la réponse d'erreur comme paramètre. Voici un exemple de réponse d'erreur OAuth.

  {
    "error":"access_denied"
  }

Vous trouverez ci-dessous quelques exemples.

  1. L'utilisateur refuse la requête OAuth.
  2. Pour une requête OAuth avec le paramètre prompt=none, l'utilisateur n'est pas déjà authentifié et n'a pas préconfiguré le consentement pour les champs d'application demandés.

L'exemple ci-dessous montre comment gérer les réponses OAuth de réussite et d'erreur.

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

Erreurs non OAuth

OAuth ne définit pas les comportements dans les cas suivants:

  1. la fenêtre pop-up ne s'ouvre pas.
  2. la fenêtre pop-up est fermée avant qu'une réponse OAuth ne soit renvoyée.

Cette bibliothèque capture ces erreurs et déclenche error_callback si elle est définie. Veillez à vérifier le type d'erreur, comme indiqué ci-dessous. Sinon, la logique de votre code risque d'être affectée lorsque cette bibliothèque prendra en charge de nouveaux types d'erreurs plus tard.

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