Google Apps Script ma ponad 30 wbudowanych usług do interakcji z danymi użytkowników, innymi systemami Google i systemami zewnętrznymi. Usługi te są udostępniane jako obiekty globalne podobne do standardowego obiektu JavaScriptu Math
. Na przykład Math
udostępnia metody takie jak random()
i stałe, np. PI
, a usługa Arkuszy kalkulacyjnych w Apps Script udostępnia metody takie jak openById(id)
, klasy (obiekty podrzędne) takie jak Range
i wyliczenia typu DataValidationCriteria
.
Dokumentacja referencyjna dotycząca usług kontrolujących Google Workspace produkty są zbierane w sekcji „Google Workspace Usługi” pod nagłówkiem „Materiały referencyjne” na pasku bocznym tej witryny. W sekcji „Usługi skryptu” są zbierane usługi (np. tworzenie interfejsów użytkownika, analizowanie danych XML czy zapisywanie danych logów).
Nowoczesne funkcje JavaScript
Apps Script obsługuje 2 środowiska wykonawcze JavaScript: nowoczesne V8 i starsze z interpreterem JavaScriptu Rhino opracowanym przez Mozilli.
Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszym standardzie JavaScript 1.6 plus kilku funkcjach z wersji 1.7 i 1.8. Możesz swobodnie wybrać środowisko wykonawcze, którego chcesz używać ze skryptem, ale zdecydowanie zalecamy używanie środowiska wykonawczego V8.
Każde środowisko wykonawcze obsługuje klasy i obiekty JavaScriptu, które są dostępne dla Twojego skryptu, a także wbudowane i zaawansowane usługi Google. Skrypty mogą korzystać z typowych obiektów, takich jak Array
, Date
, RegExp
itp., a także z obiektów globalnych Math
i Object
.
Korzystanie z autouzupełniania
Edytor skryptów jest wyposażony w funkcję „wspomaganie treścią”, zwaną częściej „autouzupełnianiem”, która ujawnia obiekty globalne oraz metody i wyliczenia, które są prawidłowe w bieżącym kontekście skryptu. Sugestie autouzupełniania pojawiają się automatycznie za każdym razem, gdy wpiszesz kropkę po globalnym obiekcie, wyliczeniu lub wywołaniu metody, które zwraca klasę Apps Script. Na przykład:
- Jeśli wpiszesz pełną nazwę obiektu globalnego lub wybierzesz jeden z autouzupełniania, a następnie wpisz
.
(kropkę), zobaczysz wszystkie metody i wyliczenia dla tej klasy. - Jeśli wpiszesz kilka znaków, zobaczysz wszystkie poprawne sugestie rozpoczynające się od tych znaków.
Informacje o obiektach globalnych
Każda usługa ma co najmniej 1 obiekt globalny (najwyższego poziomu), np. usługa Gmail jest dostępna wyłącznie z poziomu 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 wywoływania
Obiekty globalne niemal wszystkich usług wbudowanych lub usług zaawansowanych 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, możesz połączyć wywołania metody w jednym wierszu. Typy zwrotów 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 sekcje kodu są równoważne:
var doc = DocumentApp.create('New document');
var body = doc.getBody();
body.appendParagraph('New paragraph.');
// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');
Dostęp do zajęć podrzędnych
Każda usługa zawiera co najmniej jedną klasę podrzędną, do której nie można uzyskać dostępu z najwyższego poziomu w zależności od obiektu globalnego. Do utworzenia tych klas nie można użyć słowa kluczowego new
, tak jak w przypadku standardowych klas JavaScript, takich jak Date
. Dostęp do klas podrzędnych można uzyskać tylko przez wywołanie metody, która ją zwraca. Jeśli nie wiesz, jak uzyskać dostęp do określonej klasy, otwórz stronę główną z dokumentacją usługi i poszukaj metody, która zwraca oczekiwaną klasę.
Obsługa interfejsów
Niektóre usługi obejmują specjalne klasy oznaczone w dokumentacji jako „interfejsy”. Są to klasy ogólne używane jako typy zwracanych metod, które nie mogą z wyprzedzeniem określić dokładnego typu. Na przykład metoda Usługa dokumentów Body.getChild(childIndex)
zwraca ogólny obiekt Element
.
Element
to interfejs reprezentujący inną klasę, prawdopodobnie Paragraph
lub Table
. Obiekty interfejsu rzadko są przydatne samodzielnie. Aby rzutować obiekt z powrotem do dokładnej klasy, zwykle najlepiej jest wywoływać metodę taką jak Element.asParagraph()
.
Praca z wyliczeniami
Większość usług zawiera kilka wyliczeń (typów wyliczonych) nazwanych wartości. Na przykład usługa Dysk używa wyliczeń Access
i Permission
do określania, którzy użytkownicy mają dostęp do pliku lub folderu. W niemal wszystkich przypadkach do tych wyliczeniowych uzyskuje się dostęp z obiektu globalnego. Na przykład wywołanie metody Folder.setSharing(accessType, permissionType)
wygląda tak:
// 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);