Google Apps Script

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Apps Script
Google Apps Script.svg
Тип Вебфреймворк
Розробник Google
Перший випуск 19 серпня 2009; 12 років тому (2009-08-19)[1]
Операційна система Android, iOS, macOS, Chrome OS
Мова програмування JavaScript
Доступні мови багатомовний</ref>
Українська є
Вебсайт script.google.com

Apps Script — скриптова платформа, розроблена в Google для розробки легких веб додатків на платформі Google Workspace. Google Apps Script початково розроблена Майком Гармом як побічний проєкт під час роботи над Google Sheets.[2] Google Apps Script вперше публічно анонсований у травні 2009, коли бета тестування програми було анонсовано Джонатаном Рошелем, який на той час займав посаду продакт менеджера Google Docs.[3] У серпні 2009 Google Apps Script згодом став доступним для всіх клієнтів Google Apps Premier та Education Edition.[4] Фреймворк базується на JavaScript 1.6, але також включає в себе деякі частини з 1.7 та 1.8, а також підмножину ECMAScript 5 API.[5] Проєкти Apps Script запускуються в інфраструктурі Google на стороні сервера. Згідно Google, Apps Script «забезпечує прості шляхи для автоматизації задач на перетині продуктів Google та сторонніх сервісів.»[6] Apps Script також являється інструментом для написання розширень для Google Docs, Sheets та Slides.[7]

Переваги[ред. | ред. код]

  1. Базується на JavaScript 1.6, а також включеннях з JavaScript 1.7 та 1.8[8]
  2. Хмарний зневаджувач для зневадження App Scripts у веб браузері.
  3. Може бути застосований для створення простих інструментів для внутрішнього використання в організаціях.
  4. Може бути застосований для виконання простих адміністративних задач.
  5. Модель підтримки спільнотою. [1]

Обмеження[ред. | ред. код]

  1. Обробка – Як хмарний сервіс, Apps Script обмежує час виконання сценарію користувача, а також обмежує доступ до сервісів Google.[9]
  2. Наразі Google Apps Store не дозволяє прямого підключення до внутрішніх (за брандмауером) корпоративних баз даних, що є ключем до створення бізнес-додатків, однак за допомогою служби JDBC це можна подолати, якщо підключення дозволено із серверів Google на внутрішній сервер бази даних.[10] Аналогічно, відсутність інших підключень, таких як підключення LDAP, обмежує рівень, до якого Goodle Apps Script може використовуватися на підприємстві.
  3. Через хмарний характер Apps Script функції, пов'язані з датою та часом, дають результати, які здаються неправильними через перетин даних часових поясів. Використання об'єктів і функцій Date/Time без дуже точного оголошення та ретельного тестування може призвести до неточних результатів.[11]

Приклад[ред. | ред. код]

function doGet(e) {  
  var searchTerm = 'Script Tools'
  var ui = XmlService.createDocument(XmlService.createElement('html')).setDocType(XmlService.createDocType('html'))
  var body = XmlService.createElement('body')  
  body = buildTree(body, searchTerm);
  ui.getRootElement().addContent(body)
  return HtmlService.createHtmlOutput(XmlService.getRawFormat().format(ui))
}


function buildTree(node, searchTerm) {
  var ul = XmlService.createElement('ul').addContent(XmlService.createElement('p').addContent(XmlService.createText(searchTerm))); 
  // Use of the Apps Script DriveApp Service to retrieve the collections.  
  var folders = DriveApp.getFoldersByName(searchTerm).next().getFolders()
  while (folders.hasNext()){    
    var thisFolder = folders.next();   
    var li = XmlService.createElement('li');   
    var resp = buildTree(li, thisFolder.getName())            
    ul.addContent(li);
  }

  var files =  DriveApp.getFoldersByName(searchTerm).next().getFiles()   
  while (files.hasNext()) {    
    var thisFile = files.next()    
    if (thisFile.getMimeType() === "application/vnd.google-apps.document") {
      urlBase = "https://docs.google.com/document/edit?id=";
      iconHTML = "https://drive-thirdparty.googleusercontent.com/32/type/application/vnd.google-apps.document";
    }    
    else if (thisFile.getMimeType() === "application/vnd.google-apps.spreadsheet") {      
      urlBase = "https://spreadsheets.google.com/ccc?key=";
      iconHTML = "https://drive-thirdparty.googleusercontent.com/32/type/application/vnd.google-apps.spreadsheet";
    }
    else if (thisFile.getMimeType() === "application/vnd.google-apps.script") {      
      urlBase = "https://docs.google.com/fileview?id=";
      iconHTML = "https://drive-thirdparty.googleusercontent.com/32/type/application/vnd.google-apps.script";
    }
    else if (thisFile.getMimeType() === "application/vnd.google-apps.presentation") {       
      urlBase = "https://docs.google.com/present/edit?id=";
      iconHTML = "https://drive-thirdparty.googleusercontent.com/32/type/application/vnd.google-apps.presentation";
    }
    else if (thisFile.getMimeType() === "application/vnd.google-apps.drawing") {       
      urlBase = "https://docs.google.com/drawings/edit?id=";
      iconHTML = "https://drive-thirdparty.googleusercontent.com/32/type/application/vnd.google-apps.drawing";       
    }
    else {
      urlBase = "https://docs.google.com/fileview?id=";
      iconHTML = "https://drive-thirdparty.googleusercontent.com/32/type/application/application/vnd.google-apps.unknown";    
    }    
    
    var li = XmlService.createElement('li');     
    var image = XmlService.createElement('img').setAttribute('src', iconHTML);    
    var fileLabel =  XmlService.createElement('a').setAttribute('href', urlBase + thisFile.getId())
                      .setAttribute('target', '_blank').addContent(XmlService.createText(thisFile.getName()))
    var fileLabelPanel = XmlService.createElement('div').setAttribute('style', 'display:flex;flex-direction: row;')
    fileLabelPanel.addContent(image)
    fileLabelPanel.addContent(fileLabel)    
    li.addContent(fileLabelPanel)
    ul.addContent(li)
  }    
  node.addContent(ul)
  return node;   
}

Розширення[ред. | ред. код]

У травні 2014, Google представив розширення для Docs та Sheets (незабаром з'явилися Forms). Магазини доповнень дозволяють користувачам додавати додаткові функції до редакторів Google, такі як злиття пошти, робочі процеси, конструктори діаграм тощо. Усі додатки або на 100 % створені за допомогою Apps Script, або просто використовують Apps Script для відображення інтерфейсу користувача в редактори Google, покладаючись на зовнішній сервер для виконання деяких завдань. Наприклад, MailChimp, інструмент для злиття листів, має розширення для Документів Google, яке взаємодіє з платформою MailChimp для надсилання електронних листів.

До Розширень можна було публікувати сценарії для Google Sheets у Script Gallery. Коли користувачі встановлювали сценарії через Gallery, копія коду Apps Script встановлювалася на аркуші таблиць користувача. З додатками кінцевий користувач не має доступу до вихідного коду, і всі використовують останню версію, опубліковану розробником. Цей новий підхід полегшує підтримку існуючого коду і допоміг переконати кілька компаній, наприклад MailChimp або LucidChart, інвестувати в Apps Script.

У рамках випуску доповнень Google також представив посібник зі стилю розробки користувацького інтерфейсу[12] і пакет CSS стилів, щоб допомогти розробникам створювати доповнення, які інтегруються в редактори. Кожне доповнення також перевіряється Google перед його публікацією, і розробники можуть скористатися порадами співробітників Google щодо покращення взаємодії з користувачем. Рекламу не можливо вставляти в доповнення, але можна їх монетизувати.[13]

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Meyer, David (20 серпня 2009). Google Apps Script gets green light. CNet. Процитовано 26 березня 2011. 
  2. Koleda, Eric (21 серпня 2019). Celebrating 10 years of Apps Script: looking back on how it started. Google Cloud Blog. Процитовано 22 серпня 2019. 
  3. Rochelle, Jonathan (27 травня 2009). Old tool, new tricks. Google Cloud Blog. Процитовано 22 серпня 2019. 
  4. Levey, Evin (19 серпня 2009). Google Apps Script Launched to Google Apps Premier and Education. Google Apps Script. Процитовано 22 серпня 2019. 
  5. 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. Архів оригіналу за 29 червня 2010. Процитовано 25 березня 2011.  Проігноровано невідомий параметр |s2cid= (довідка)
  6. Google Apps Script
  7. Bring a little something extra to Docs and Sheets with add-ons
  8. Google Inc. (28 серпня 2018). Built-in Google Services. Google Apps Script. Процитовано 16 травня 2019. 
  9. Quotas for Google Services | Apps Script. 
  10. JDBC | Apps Script. 
  11. Issue 1035: utilities.formatdate subtracts a day. Процитовано 17 грудня 2012. 
  12. UI Style Guide for Add-ons
  13. I've started a little experiment…

Посилання[ред. | ред. код]