Des erreurs peuvent se produire dans différentes couches. Vous pouvez recevoir des notifications de différentes manières en fonction de l'endroit où l'erreur se produit.
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.
Corriger les erreurs de configuration OAuth
Vous devrez peut-être modifier la console des API Google pour résoudre certaines erreurs.
- Crée un ID client si ce n'est pas déjà fait.
- Pour l'expérience utilisateur pop-up, ajoutez tous les domaines susceptibles de déclencher le flux actuel vers
Authorized JavaScript origins
. - Pour l'expérience utilisateur de redirection, ajoutez toutes les URL pouvant recevoir des réponses d'autorisation à
Authorized redirect URIs
. - Configurez correctement votre écran de consentement OAuth.
- Si nécessaire, envoyez votre application pour validation.
- Vous devrez peut-être prendre des mesures supplémentaires pour respecter les règles OAuth 2.0 de Google.
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.
Réponses d'erreur OAuth
OAuth peut renvoyer une réponse d'erreur, auquel cas votre fonction callback
est déclenchée avec la réponse d'erreur en tant que paramètre. Voici un exemple de réponse d'erreur OAuth.
{ "error":"access_denied" }
Vous en trouverez quelques exemples ci-dessous.
- L'utilisateur refuse la requête OAuth.
- 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:
- la fenêtre contextuelle ne s'ouvre pas.
- la fenêtre contextuelle est fermée avant qu'une réponse OAuth ne soit renvoyée.
Cette bibliothèque capture ces erreurs et déclenche l'error_callback
si elle est définie. Assurez-vous de vérifier le type d'erreur comme indiqué ci-dessous. Sinon, votre logique de code pourra être affectée lorsque cette bibliothèque prendra en charge de nouveaux types d'erreurs par la suite.
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
});