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 APIs en tus secuencias de comandos.

Conéctate a APIs públicas

Puedes usar el servicio UrlFetch para hacer directamente a las APIs.

En el siguiente ejemplo, se usa el 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 generalmente requieren autorización, a menudo usando 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, el archivo JSON se puede acceder a la respuesta de cadena HTTPResponse.getContentText() Una vez que se recupere esta cadena, simplemente llama a JSON.parse() en la cadena para obtener un de objetos nativos.

// 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 para para hacer 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 devuelve una respuesta XML sin procesar para una solicitud, puedes acceder al 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.