Guía Para Principiantes Sobre Las Api con Google Sheets y Google Apps Script

by Luigi Nori Date: 15-08-2019 google api docs drive


El objetivo de este post es guiarte a través de la conexión deGoogle Sheets a tu primera API externa utilizando Google Apps Script, para recuperar datos de un tercero y mostrarlos en tu hoja de Google.

Vamos a empezar con utilizar Google Apps Script para conectarnos a una API de prueba súper sencilla para recuperar algunos datos:

Lo básico: ¿qué es una API?

Probablemente ya ha escuchado el término API antes. Tal vez haya escuchado cómo las empresas de tecnología las utilizan cuando canalizan datos entre sus aplicaciones. O cómo las empresas construyen sistemas complejos a partir de muchos microservicios más pequeños vinculados por APIs, en lugar de programas únicos y monolíticos en la actualidad.

API significa "Application Program Interface" (Interfaz de programa de aplicación), y el término se refiere comúnmente a URLs web que pueden utilizarse para acceder a datos sin procesar. Básicamente, la API es una interfaz que proporciona datos sin procesar para que el público los utilice (aunque muchos requieren algún tipo de autenticación).

Como desarrolladores de software de terceros, podemos acceder a la API de una organización y utilizar sus datos dentro de nuestras propias aplicaciones.

La buena noticia es que hay un montón de APIs simples por ahí, con las que podemos empezar a trabajar.

Podemos conectar una hoja de cálculo de Google a una API y devolver los datos de esa API a nuestra hoja de cálculo de Google utilizando Google Apps Script. Es divertido y realmente satisfactorio si eres nuevo en este mundo.

Conexión de Google Sheets a una API externa mediante Google Apps Script

En los siguientes ejemplos vamos a utilizar Google Apps Script para conectarnos a APIs externas.

Google Apps Script es un lenguaje de scripting basado en Javascript alojado y ejecutado en los servidores de Google, que amplía la funcionalidad de Google Apps.

Vamos a empezar con algo súper simple, para que podamos concentrarnos en los datos y no perdernos en líneas y líneas de código.

Vamos a escribir un programa corto que llama a una API de prueba de https://jsonplaceholder.typicode.com/ , esta web nos permite sacar datos aleatorios para hacer testeo con nuestras integraciónes, en este caso devuelve un json.

Paso 1: Abrir una nueva hoja de Google en blanco y cambiarle el nombre, por ejemplo: Prueba conexión API

Paso 2: Abrir "Herramientas > Editor de secuencias de comandos"

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Paso 3: Se abre una nueva pestaña y aquí es donde escribiremos nuestro código. Nombra el proyecto: Ejemplo de API, la hoja debe tener nombre Hoja 1

Paso 4: Elimina todo el código que se encuentra actualmente en el archivo Código.gs y reemplázalo por este:

function getAPI() {
//Parámetros para llamar a la API
var endpoint = 'https://jsonplaceholder.typicode.com/todos';
// parametros para sacar los datos de la URL
var params = {
'method': 'GET'
};
try {
// llamada a la API
var response = UrlFetchApp.fetch(endpoint, params);
var data = response.getContentText();
var json = JSON.parse(data); 
// sacamos los datos del json
var results = json;
Logger.log(results);
}
catch (error) {
// mira si hay errores
Logger.log(error);
};
}

Estamos usando la clase UrlFetchApp para comunicarnos con otras aplicaciones en Internet para acceder a recursos, para obtener una URL.

Paso 5: Ejecuta la función haciendo clic en el botón de reproducción de la barra de herramientas:

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Paso 6: El programa pedirá que autorices tu script para conectarse a un servicio externo. Haz clic en "Revisar permisos" y, a continuación,"configuración avanzada" y "Ir a ejemplo de Api" y Permitir" para continuar.

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Paso 7: Felicitaciones, su programa ya se ha ejecutado. Se envía una solicitud a un tercero para obtener algunos datos (en este caso un dato matemático aleatorio) y ese servicio ha respondido con esos datos.

Pero espera, ¿dónde está? ¿Cómo vemos esos datos?

Bueno, notarás que la al final del try de nuestro código anterior hemos puesto un Logger.log(....) , lo que significa que hemos grabado el texto de la respuesta en nuestros archivos de registro.

Así que vamos a comprobarlo.

Vete a "Ver > Registros":

Verás tu respuesta (por supuesto que puedes tener un contenido diferente) que se ve así en la ventana emergente:

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Entonces, ¿qué pasa si queremos imprimir el resultado en nuestra hoja de cálculo?

Bueno, eso es bastante fácil.

Paso 8: Agrega estas pocas líneas de código debajo de tu código existente:

function getAPI() {
//Parámetros para llamar a la API
var endpoint = 'https://jsonplaceholder.typicode.com/todos';
// parametros para sacar los datos de la URL
var params = {
'method': 'GET'
};
try {
// llamada a la API
var response = UrlFetchApp.fetch(endpoint, params);
var data = response.getContentText();
var json = JSON.parse(data); 
// sacamos los datos del json
var results = json;
//Logger.log(results);
// creamos un array donde poner los datos
var resultData = [];  
// Añadimos los resultados al Array
for (var x = 0; x < results.length; x++) { 
resultData.push([
x,
results[x]["id"],
results[x]["title"],
results[x]["completed"]
]);
}
// selecciona la hoja de salida
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Users');
// calcula el número de filas y columnas necesario
var numRows = resultData.length;
var numCols = resultData[0].length;    
Logger.log('' + numRows + '-' + numCols);
// imprime los datos en la Hoja
sheet.getRange(1,1,numRows,numCols).setValues(resultData);
}
catch (error) {
// deal with any errors
Logger.log(error);
};
}

simplemente asigna los datos de respuesta (nuestros datos) a un array, para que podamos crear un bucle, una vez creado este bucle iremos a imprimir las filas y las columnas de forma automática usando el setValues

Paso 9: Ejecuta tu programa de nuevo.

Paso 10: Ahora obtendrás la hoja de calculo rellenada de los datos de prueba

En resumen: hemos solicitado datos de un servicio de terceros en Internet. Ese servicio ha respondido con los datos que queríamos y ahora los hemos incluido en nuestra hoja de Google!

Paso 11: El script tal como está escrito siempre sobrescribirá todo desde la celda A1 con sus nuevos datos cada vez que ejecute el programa.

Una última cosa que podríamos querer hacer con esta aplicación es añadir un menú a nuestra hoja de Google, para que podamos ejecutar el script desde allí en lugar de la ventana del editor de scripts. Es bonito y fácil!

Paso 12: Añade el siguiente código en tu editor de scripts:

function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Ejemplos API')
.addItem('Descarga API ejemplo','getAPI')
.addToUi();
}

Paso 13: Ejecute la función onOpen, que añadirá el menú a la hoja de cálculo. Sólo tenemos que hacer este paso una vez.

Guía para principiantes sobre las API con Google Sheets y Google Apps Script

Espero que te haya gustado esta guía.

 
by Luigi Nori Date: 15-08-2019 google api docs drive visitas : 112  
 
Luigi Nori

Luigi Nori

Lavora in Internet dal 1994 (praticamente una mummia), specializzato in tecnologie Web fa felici i suoi clienti smanettando con applicazioni su larga scala e ad alta disponibilità, frameworks php e js, disegno web, intercambio dati, sicurezza, e-commerce, amministrazione database e server, hacking etico. Convive felicemente con @salvietta150x40, nel (poco) tempo libero cerca di addomesticare un piccolo nano selvaggio appassionato di astri.

 
 
 

Artículos relacionados