Autenticación con OAuth 2.0

Si tu conector exige a los usuarios que autoricen el acceso a los servicios de terceros mediante OAuth 2.0, deberá proporcionar funciones de autenticación adicionales que permitan cumplir con los procesos de este protocolo.

Definir los tipos de autenticación en getAuthType()

Si tu fuente de datos requiere la autenticación OAuth 2.0, asegúrate de que la función getAuthType() devuelva OAUTH2 como el tipo de autenticación (AuthType).

Ejemplo de la función getAuthType() de una fuente de datos que requiere la autenticación OAuth 2.0:

function getAuthType() {
  var response = {
    "type": "OAUTH2"
  };
  return response;
}

Añadir y configurar la biblioteca OAuth2

Si quieres añadir la biblioteca OAuth2 de Apps Script al proyecto del conector, sigue estas instrucciones de configuración. A continuación, sigue el primer paso que aparece en la guía de uso para crear un servicio de OAuth2 en el proyecto del conector. Asigna un nombre de función válido al servicio. Puede ser cualquier nombre, pero recuerda que debes usar el mismo en tu código.

Por ejemplo, el servicio de OAuth2 se podría llamar getOAuthService:

var getOAuthService = function() {
  return OAuth2.createService('exampleService')
    .setAuthorizationBaseUrl('...')
    .setTokenUrl('...')
    .setClientId('...')
    .setClientSecret('...')
    .setPropertyStore(PropertiesService.getUserProperties())
    .setCallbackFunction('authCallback')
    .setScope('...');
};

authCallback()

Se llama a esta función para finalizar el proceso de OAuth 2.0. La respuesta de devolución de llamada del servicio de autenticación de terceros se proporciona como un argumento y debería gestionarlo esta función.

Ejemplo donde se gestiona la devolución de llamada de OAuth 2.0 con la biblioteca OAuth2 de Apps Script:

function authCallback(request) {
  var authorized = getOAuthService().handleCallback(request);
  if (authorized) {
    return HtmlService.createHtmlOutput('Success! You can close this tab.');
  } else {
    return HtmlService.createHtmlOutput('Denied. You can close this tab');
  };
};

isAuthValid()

Se llama a esta función para determinar si la autenticación del servicio de terceros es válida. Si la autenticación es válida, las llamadas a getData() y getSchema() no deberían generar errores por acceso no autorizado. Si la autenticación no es válida, los usuarios podrían recibir una notificación indicándoles que inicien el proceso de autorización. Consulta la referencia sobre la función isAuthValid().

Ejemplo donde se comprueba si la autenticación mediante la biblioteca OAuth2 de Apps Script es válida:

function isAuthValid() {
  var service = getOAuthService();
  if (service == null) {
    return false;
  }
  return service.hasAccess();
}

get3PAuthorizationUrls()

Se llama a esta función para obtener las URL necesarias para iniciar el proceso de autenticación de los servicios de terceros. Si isAuthValid devuelve false, las URL devueltas se mostrarán a los usuarios como botones o enlaces, que podrán usar para autorizar el acceso a los servicios. Consulta la referencia de la función get3PAuthorizationUrls().

Ejemplo donde se devuelve la URL de autorización mediante la biblioteca OAuth2 de Apps Script:

function get3PAuthorizationUrls() {
  var service = getOAuthService();
  if (service == null) {
    return '';
  }
  return service.getAuthorizationUrl();
}

resetAuth()

Esta función borrará las credenciales almacenadas de los usuarios de los servicios de terceros. Esta operación puede ser necesaria si se produce un problema con la autenticación.

Ejemplo donde se restablece la autenticación mediante la biblioteca OAuth2 de Apps Script:

function resetAuth() {
  var service = getOAuthService()
  service.reset();
}