Google Apps Script udostępnia ponad 30 wbudowanych usług do interakcji z danymi użytkowników, innymi systemami Google i systemami zewnętrznymi. Te usługi są udostępniane jako obiekty globalne podobne do standardowego obiektu Math w JavaScript. Na przykład tak jak Math oferuje metody takie jak random() i stałe takie jak PI, usługa Arkusze kalkulacyjne w Apps Scripcie oferuje metody takie jak openById(id), klasy (obiekty podrzędne) takie jak Range i wyliczenia takie jak DataValidationCriteria.
Dokumentacja referencyjna usług, które kontrolują produkty Google Workspace, jest dostępna w sekcji „Usługi Google Workspace” w nagłówku „Referencje” na pasku bocznym tej witryny. Usługi narzędziowe (np. do tworzenia interfejsów użytkownika, analizowania kodu XML lub zapisywania danych logowania) są zbierane w sekcji „Usługi skryptowe”.
Nowoczesne funkcje JavaScriptu
Apps Script obsługuje 2 środowiska wykonawcze JavaScript: nowoczesne środowisko wykonawcze V8 i starsze środowisko oparte na interpreterze JavaScript Rhino firmy Mozilla.
Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszym standardzie JavaScript 1.6 oraz kilku funkcjach ze standardów 1.7 i 1.8. Wybierz środowisko wykonawcze, którego chcesz używać ze skryptem. Zdecydowanie zalecamy środowisko wykonawcze V8.
Każde środowisko wykonawcze obsługuje klasy i obiekty JavaScript, które są dostępne dla skryptu oprócz wbudowanych i zaawansowanych usług Google. Skrypty mogą używać typowych obiektów, takich jak Array, Date, RegExp, itd., a także obiektów globalnych Math i Object.
Kod Apps Script jest uruchamiany na serwerach Google (z wyjątkiem stron usługi HTML), więc funkcje JavaScriptu oparte na przeglądarce, takie jak manipulowanie DOM czy interfejs Window API, nie są dostępne w Apps Script.
Autouzupełnianie
Edytor skryptów udostępnia funkcję „pomoc w pisaniu treści”, częściej nazywaną „autouzupełnianiem”, która wyświetla obiekty globalne oraz metody i wyliczenia, które są prawidłowe w bieżącym kontekście skryptu. Sugestie autouzupełniania pojawiają się automatycznie, gdy po obiekcie globalnym, wyliczeniu lub wywołaniu metody, która zwraca klasę Apps Script, wpiszesz kropkę. Na przykład:
- Jeśli wpiszesz pełną nazwę obiektu globalnego lub wybierzesz ją z autouzupełniania, a potem wpiszesz
.(kropkę), zobaczysz wszystkie metody i wyliczenia dla tej klasy. - Jeśli wpiszesz kilka znaków, zobaczysz wszystkie prawidłowe sugestie, które się od nich zaczynają.
Obiekty globalne
Każda usługa udostępnia co najmniej 1 obiekt globalny (najwyższego poziomu). Na przykład do usługi Gmail można uzyskać dostęp tylko za pomocą obiektu GmailApp. Niektóre usługi udostępniają wiele obiektów globalnych. Na przykład usługa podstawowa zawiera 4 obiekty globalne: Browser, Logger, MimeType i Session.
Metody
Obiekty globalne prawie wszystkich wbudowanych lub zaawansowanych usług zawierają metody, które zwracają dane lub klasę Apps Script. Skrypty wywołują metody w tym formacie:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Na przykład skrypt może wysłać e-maila, wywołując metodę
sendEmail(recipient, subject, body)
usługi Gmail w ten sposób:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
Jeśli metoda zwraca inną klasę Apps Script, połącz wywołania metod w jednym wierszu. (Typy zwracane są wyświetlane zarówno w autouzupełnianiu, jak i w dokumentacji referencyjnej metody). Na przykład metoda DocumentApp.create() zwraca wartość Document, więc te 2 fragmenty kodu są równoważne:
var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');
// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
.appendParagraph('New paragraph.');
Zajęcia dla dzieci
Każda usługa zawiera co najmniej jedną klasę podrzędną, do której nie masz dostępu z poziomu najwyższego jako obiektu globalnego. Nie możesz też używać słowa kluczowego new do tworzenia tych klas, tak jak w przypadku standardowych klas JavaScriptu, np. Date.
Aby uzyskać dostęp do klasy podrzędnej, musisz wywołać metodę, która ją zwraca. Jeśli nie wiesz, jak uzyskać dostęp do określonej klasy, otwórz stronę główną dokumentacji referencyjnej usługi. Zawiera ona listę klas usługi i metod, które je zwracają.
Interfejsy
Niektóre usługi zawierają klasy oznaczone w dokumentacji jako „interfejsy”. Są to ogólne klasy używane jako typy zwracane przez metody, które nie mogą z wyprzedzeniem określić dokładnego typu. Na przykład metoda Document service Body.getChild(childIndex) zwraca ogólny obiekt Element.
Interfejs Element reprezentuje inną klasę, prawdopodobnie Paragraph lub Table. Obiekty interfejsu rzadko są przydatne same w sobie. Zamiast tego wywołaj metodę taką jak Element.asParagraph(), aby przekształcić obiekt z powrotem w określoną klasę.
Wartości w polu enum
Większość usług zawiera wyliczenia (typy wyliczeniowe) nazwanych wartości. Na przykład usługa Dysku Google używa wyliczeń Access i Permission, aby określić, którzy użytkownicy mają dostęp do pliku lub folderu. W większości przypadków dostęp do tych wyliczeń uzyskuje się z obiektu globalnego, jak pokazano w tym przykładzie:
// Creates a folder that anyone on the Internet can read from and write to.
// (Domain administrators can prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);