Soluciona errores

Los errores pueden ocurrir en diferentes capas. Es posible que recibas notificaciones de diferentes maneras, según dónde ocurra el error.

Faltan parámetros de OAuth obligatorios

Si te olvidas de configurar los parámetros de OAuth obligatorios, como el client_id o el alcance, verás un mensaje de error como el que se muestra a continuación en la Consola de JavaScript de tu navegador.

Errores de la Consola de JavaScript

Corregir errores de configuración de OAuth

Es posible que se deban realizar cambios en la Consola de APIs de Google para resolver algunos errores.

Valores de parámetros de OAuth no válidos

Si configuras los valores no válidos en los parámetros de OAuth, como el ID de cliente, los identificadores de alcance o los valores de tipo de respuesta no válidos, verás la página de error de OAuth.

Errores de OAuth

Respuestas de error de OAuth

OAuth puede mostrar una respuesta de error, en cuyo caso la función callback se activará con la respuesta de error como parámetro. El siguiente es un ejemplo de respuesta de error de OAuth.

  {
    "error":"access_denied"
  }

A continuación, se incluyen algunos ejemplos.

  1. El usuario rechaza la solicitud de OAuth.
  2. En el caso de una solicitud de OAuth con el parámetro prompt=none, el usuario aún no está autenticado y no tiene consentimiento preconfigurado para los permisos solicitados.

En el siguiente ejemplo, se muestra cómo controlar las respuestas de OAuth de éxito y error.

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

Errores que no son de OAuth

OAuth no define los comportamientos en los siguientes casos:

  1. no se abre la ventana emergente.
  2. La ventana emergente se cierra antes de que se muestre una respuesta de OAuth.

Esta biblioteca captura estos errores y activa error_callback si se configura. Asegúrate de verificar el tipo de error como se muestra a continuación. De lo contrario, tu lógica de código podría verse afectada cuando esta biblioteca admita nuevos tipos de errores más adelante.

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