Soluciona errores

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

Faltan parámetros de OAuth obligatorios

Si olvidas establecer los parámetros de OAuth obligatorios, como el client_id o el permiso, verás un mensaje de error como el siguiente en la Consola de JavaScript de tu navegador.

Errores de la Consola de JavaScript

Cómo corregir errores de configuración de OAuth

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

Valores de parámetros de OAuth no válidos

Si configuras 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 se activará tu función callback con la respuesta de error como parámetro. A continuación, se muestra un ejemplo de respuesta de error de OAuth.

  {
    "error":"access_denied"
  }

Estos son 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 preconfiguró el consentimiento para los permisos solicitados.

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

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 devuelva una respuesta de OAuth.

Esta biblioteca captura estos errores y activa error_callback si está configurada. Asegúrate de verificar el tipo de error como se indica a continuación. De lo contrario, la lógica de tu 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
});