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:
- OAuth1 para Apps Script: Compatibilidad con OAuth 1.0 y 1.0a.
- OAuth2 para Apps Script: Compatibilidad con OAuth2.
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.