Google Apps Script zapewnia 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 Math
JavaScriptu. Na przykład Math
oferuje metody takie jak random()
i stałe takie jak PI
, a usługa Arkuszy Google w Apps Script oferuje metody takie jak openById(id)
, klasy (obiekty podrzędne) takie jak Range
czy wyliczenia takie jak DataValidationCriteria
.
Dokumentacja referencyjna dotycząca usług pozwalających kontrolowaćGoogle Workspace produkty są zbierane w sekcji „Google Workspace Usługi” pod nagłówkiem „Plik referencyjny” na pasku bocznym w tej witrynie. Usługi narzędziowe (do tworzenia interfejsów użytkownika, analizowania kodu XML czy zapisywania danych logów) są zbierane w sekcji „Usługi skryptów”.
Nowoczesne funkcje JavaScript
Apps Script obsługuje 2 środowiska wykonawcze JavaScript: nowoczesne środowisko wykonawcze V8 i starsze oparte na interpreterze JavaScript Rhino firmy Mozilla.
Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszej wersji JavaScriptu 1.6 oraz kilku funkcjach z wersji 1.7 i 1.8. Możesz dowolnie wybrać środowisko wykonawcze, które ma być używane w skrypcie, ale zdecydowanie zalecamy użycie środowiska wykonawczego V8.
Każde środowisko wykonawcze obsługuje klasy i obiekty JavaScript, które są dostępne dla skryptu, a także wbudowane i zaawansowane usługi Google. Skrypty mogą korzystać z typowych obiektów, takich jak Array
, Date
, RegExp
itd, a także obiektów globalnych Math
i Object
.
Korzystanie z autouzupełniania
Edytor skryptów udostępnia funkcję wspomagania treści (bardziej zwaną autouzupełnianiem), która ujawnia obiekty globalne, a także 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 zwróci klasę Apps Script. Na przykład:
- Gdy wpiszesz pełną nazwę obiektu globalnego lub wybierzesz obiekt z autouzupełniania, a następnie wpiszesz
.
(kropkę), wyświetlą się wszystkie metody i wyliczenia dla tej klasy. - Jeśli wpiszesz kilka znaków, zobaczysz wszystkie prawidłowe sugestie, które zaczynają się od tych znaków.
Informacje o obiektach globalnych
Każda usługa udostępnia co najmniej 1 obiekt globalny (najwyższego poziomu), np. dostęp do usługi Gmail jest uzyskiwany wyłącznie z poziomu obiektu GmailApp
. Niektóre usługi udostępniają wiele obiektów globalnych, np. usługa podstawowa zawiera 4 obiekty globalne: Browser
, Logger
, MimeType
i Session
.
Metody nawiązywania połączeń
Obiekty globalne niemal wszystkich wbudowanych i usług zaawansowanych zawierają metody zwracające dane lub klasę Apps Script. Skrypty wywołują metody w takim 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 metod w łańcuchu w jednym wierszu. Typy zwracanych funkcji są wyświetlane zarówno w autouzupełnianiu, jak i w dokumentacji referencyjnej metody. Na przykład metoda DocumentApp.create()
zwraca Document
, więc 2 poniższe 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 1 klasę podrzędną, do której nie można uzyskać dostępu z poziomu obiektu globalnego. Do konstruowania tych klas nie można używać słowa kluczowego new
, tak jak w przypadku standardowych klas JavaScriptu, takich jak Date
. Aby uzyskać dostęp do klasy podrzędnej, wystarczy wywołać metodę, która ją zwraca. Jeśli nie masz pewności, jak uzyskać dostęp do określonej klasy, otwórz stronę główną z dokumentacją referencyjną usługi i poszukaj metody, która zwraca odpowiednią klasę.
Obsługa interfejsów
Niektóre usługi obejmują specjalne klasy oznaczone w dokumentacji referencyjnej jako „interfejsy”. Są to klasy ogólne, używane jako typy zwracanych w przypadku metod, które nie mogą z wyprzedzeniem określić dokładnego typu. Na przykład metoda Usługa Document Body.getChild(childIndex)
zwraca ogólny obiekt Element
.
Element
to interfejs, który reprezentuje inną klasę, np. Paragraph
lub Table
. Obiekty interfejsu rzadko są używane same w sobie. Lepiej jest wywołać metodę taką jak Element.asParagraph()
, by rzutować obiekt z powrotem do dokładnej klasy.
Praca z wyliczeniami
Większość usług zawiera kilka wyliczeń (typów) nazwanych wartości. Na przykład usługa Dysku używa wyliczeniowych Access
i Permission
do określania, którzy użytkownicy mają dostęp do pliku lub folderu. Prawie we wszystkich przypadkach uzyskujesz dostęp do tych wyliczeniowych
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);