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.

Conectarse a APIs públicas

Puedes usar el servicio UrlFetch para realizar solicitudes a la API directamente.

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

Cómo realizar solicitudes a servicios con OAuth

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

Trabaja 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 mediante el método HTTPResponse.getContentText(). Una vez que se recupere esta cadena, solo debes llamar 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 realizar una representación de cadena de un objeto JavaScript para 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.

Cómo analizar XML

Si una API externa muestra una respuesta XML sin procesar para una solicitud, puedes acceder a ella 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, crea el XML que quieres enviar usando 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.