Google Apps Script

De Wikipedia, la enciclopedia libre

Apps Script es una lenguaje de scripting para el desarrollo de aplicaciones ligeras en la plataforma G Suite. Se basa en Javascript 1.6 con algunas partes de 1.7 y 1.8 y proporciona un subconjunto de la API ECMAScript 5, sin embargo en vez de ejecutarse en el cliente, se ejecuta en Google Cloud.[1]​ Según Google, Apps Script "proporciona formas fáciles de automatizar tareas en productos de Google y servicios de terceros."[2]​ Apps Script es también la herramienta que complementa los complementos para Google Docs, Hojas y Presentaciones.[3]

Beneficios[editar]

  1. Basado en Javascript; fácil de aprender.
  2. Depurador basado en la nube para la depuración de scripts de aplicaciones en el navegador web
  3. Puede utilizarse para crear herramientas simples para el consumo interno de una organización
  4. Se puede utilizar para realizar tareas simples de administración del sistema
  5. Modelo de soporte basado en la comunidad. [2]

Limitaciones[editar]

  1. Limitaciones de procesamiento: como un servicio basado en la nube, Apps Script limita el tiempo que puede ejecutarse el script de un usuario, así como también limita el acceso a los servicios de Google..[4]
  2. Actualmente, Google Apps Store no permite la conexión directa a bases de datos corporativas internas (detrás del firewall), lo cual es clave para crear aplicaciones de negocios. Sin embargo, mediante el uso del servicio JDBC, esto puede superarse, si las conexiones se permiten desde los servidores de Google. al servidor interno de la base de datos.[5]​ De manera similar, la falta de otra conectividad, como la conectividad LDAP, limita el nivel al que se puede usar GAS en la empresa. [cita requerida]
  3. Debido a la naturaleza en la nube de Apps Script, las funciones relacionadas con la fecha y la hora producirán resultados que parecen ser incorrectos debido a que los datos cruzan las zonas horarias. El uso de objetos y funciones de fecha / hora sin una declaración muy precisa y pruebas exhaustivas puede resultar en resultados inexactos.[6]

Ejemplo[editar]

El siguiente código utiliza los Servicios de UI de Script de Apps y los Servicios de DocList para mostrar el contenido de una carpeta de Google Drive en formato de árbol.

Observe el uso de Javascript y el uso de los widgets Google Web Toolkit (Google también introdujo el Servicio HTML en junio de 2012, como alternativa a los widgets de GWT. Le permite servir páginas web que pueden interactuar con las funciones de Script de aplicaciones del lado del servidor).

function doGet(e) {   
  var app = UiApp.createApplication();
  var scrollPanel = app.createScrollPanel(); // Scroll Panel is a Google Web Toolkit Widget
  tree = app.createTree(); // Tree is a Google Web Toolkit Widget
  tree.addItem(buildTree(app, "Enterprise 2.0 - Saqib"));
  scrollPanel.add(tree);  
  scrollPanel.setHeight("500");
  app.add(scrollPanel);
  return app;
}
 
function buildTree(a, searchTerm) {
  var tree = a.createTreeItem(); // TreeItem is Google Web Toolkit Widget
  tree.setText(searchTerm);

  // Use of the Apps Script DocList Service to retrieve the collections.
  var folders = DocsList.getFolder(searchTerm).getFolders(); 
  for (var i = 0; i < folders.length; i++) {
    tree.addItem(buildTree(a, folders[i].getName())).setState(true, true);
  }

  var files = DocsList.getFolder(searchTerm).getFiles();
  for (var i = 0; i < files.length; i++) {    
    if (files[i].getType() === "document") {
      urlBase = "https://docs.google.com/document/edit?id=";
      iconHTML = "https://docs.google.com/images/doclist/icon_7_document_list.png";
    } 
    else if (files[i].getType() === "spreadsheet") {      
      urlBase = "https://spreadsheets.google.com/ccc?key=";
      iconHTML = "https://docs.google.com/images/doclist/icon_7_spreadsheet_list.png";
    }
    else if (files[i].getType() === "presentation") {       
      urlBase = "https://docs.google.com/present/edit?id=";
      iconHTML = "https://docs.google.com/images/doclist/icon_7_presentation_list.png";
    }
    else if (files[i].getType() === "drawing") {       
      urlBase = "https://docs.google.com/drawings/edit?id=";
      iconHTML = "https://docs.google.com/images/doclist/icon_7_drawing_list.png";       
    }
    else {
      urlBase = "https://docs.google.com/fileview?id=";
      iconHTML = "https://docs.google.com/images/doclist/icon_7_generic_list.png";    
    }    
     
    var image = a.createImage(iconHTML);
    var fileLabel = a.createAnchor(files[i].getName(), urlBase+ files[i].getId());     
    var fileLabelPanel = a.createHorizontalPanel();
    fileLabelPanel.add(image);
    fileLabelPanel.add(fileLabel);     
    tree.addItem(fileLabelPanel).setState(true, true);
  }   
  return tree;   
}

Incrustar HTML en GAS con un widget GWT:[7]

function doGet() {
  var app = UiApp.createApplication();
  app.add(app.createHTML("<b>Hello World!</b>"));
  return app;
}

Complementos[editar]

En marzo de 2014, Google introdujo complementos para documentos y hojas (pronto seguidos de formularios). Las tiendas de complementos permiten a los usuarios agregar características adicionales a los editores de Google, como la combinación de correo, flujos de trabajo, constructores de diagramas, ... Todos los complementos están 100% creados con Apps Script o simplemente usan Apps Script para mostrar una interfaz de usuario en los editores de Google mientras confían en un backend externo para realizar algunas tareas. Por ejemplo, MailChimp, una herramienta de combinación de correo, tiene un complemento para Google Docs que se comunica con la plataforma de MailChimp para enviar correos electrónicos.

Antes de los complementos, era posible publicar secuencias de comandos para Google Sheets en la Galería de secuencias de comandos. Cuando los usuarios instalaron scripts a través de esta galería, se instaló una copia del código de Apps Script en la Hoja del usuario. Con los complementos, el código fuente no es visible para el usuario final y todos usan la última versión publicada por el desarrollador. Este nuevo enfoque hace que sea más fácil admitir el código existente y ayudó a convencer a varias compañías, como MailChimp o LucidChart para que inviertan en Apps Script.

Como parte del lanzamiento de complementos, Google también presentó una Guía de estilo de UI[8]​ y el paquete CSS para ayudar a los desarrolladores a crear complementos que se integren sin problemas en los editores. Google también revisa cada complemento antes de su publicación y los desarrolladores pueden beneficiarse de los consejos de Googlers para brindar una mejor experiencia de usuario. No es posible incrustar anuncios en complementos, pero es posible monetizarlos.[9]

Referencias[editar]

  1. Kienle, Holger (May–June 2010). «It's About Time to Take JavaScript (More) Seriously». IEEE Software 27 (3): 60-62. doi:10.1109/MS.2010.76. Archivado desde el original el 29 de junio de 2010. Consultado el 25 de marzo de 2011. 
  2. Guión de Aplicaciones del Google
  3. Traer un poco algo extra a Docs y Hojas con añadir-ons
  4. https://developers.google.com/apps-script/guides/services/quotas
  5. https://developers.google.com/apps-script/guides/jdbc
  6. «Issue 1035: utilities.formatdate subtracts a day.». Consultado el 17 de diciembre de 2012. 
  7. [1] documentación de clase de HTML GASISTA
  8. UI Guía de estilo para Añadir-ons
  9. «He empezado un poco experimento...». Archivado desde el original el 26 de febrero de 2017. Consultado el 26 de diciembre de 2018. 

Véase también[editar]