API externas

Google Apps Script puede interactuar con APIs de toda la Web. En esta guía, se muestra cómo trabajar con diferentes tipos de API en tus secuencias de comandos.

Cómo conectarse a APIs públicas

Puedes usar el servicio UrlFetch para realizar solicitudes a la API de forma directa.

En el siguiente ejemplo, se usa la API de GitHub para buscar repositorios con 100 o más estrellas que mencionen "Apps Script". Esta solicitud a la API no requiere autorización ni una clave de API.

var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
  + '?sort=stars'
  + '&q=' + encodeURIComponent(query);

var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);

Realiza solicitudes a servicios con OAuth

Las APIs que actúan en nombre de un usuario suelen requerir autorización, a menudo con el protocolo OAuth. Apps Script no proporciona compatibilidad integrada con el protocolo, pero hay bibliotecas de código abierto que puedes usar para realizar el flujo de OAuth y enviar las credenciales con tus solicitudes:

Cómo trabajar con JSON

Trabajar con objetos JSON es similar a trabajar con XML, excepto que analizar o codificar un objeto JSON es mucho más fácil.

Si la API que se solicita muestra una respuesta JSON sin procesar para una solicitud, se puede acceder a la respuesta de la string JSON con el método HTTPResponse.getContentText(). Una vez que se recupera esta cadena, simplemente llama a JSON.parse() en la cadena para obtener una representación de objeto nativo.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

Del mismo modo, para hacer una representación de cadena de un objeto JavaScript con el fin de realizar una solicitud, usa JSON.stringify().

var data = {
  'entry': {
    'group': {
      'title': 'Dog Skateboarding',
      'description': 'My dog gets some serious air'
    },
    'keywords': 'dog, skateboard'
  }
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.

Analizar XML

Si una API externa muestra una respuesta XML sin procesar para una solicitud, puedes acceder a la respuesta XML con el método HTTPResponse.getContentText().

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

Cuando realices solicitudes XML a una API, construye el XML que enviarás con los métodos XmlService.

var root = XmlService.createElement('entry')
    .setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
    .setAttribute('title', 'Dog Skateboarding');
    .setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.