Google Apps Script udostępnia ponad 30 wbudowanych usług do interakcji z danymi użytkownika, innymi systemami Google i systemami zewnętrznymi. Usługi te 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 Apps Script 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ąGoogle Workspace produkty, jest dostępna w sekcji „Google Workspace Usługi” w nagłówku „Dokumentacja” 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. Możesz dowolnie wybrać środowisko wykonawcze, które będzie używane ze skryptem, ale zdecydowanie zalecamy środowisko wykonawcze V8.
Każde środowisko wykonawcze obsługuje klasy i obiekty JavaScript, które są dostępne w skrypcie 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
.
Korzystanie z autouzupełniania
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 wpiszesz kropkę po obiekcie globalnym, wyliczeniu lub wywołaniu metody, która zwraca klasę Apps Script. 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ą.
Informacje o obiektach globalnych
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 wyłącznie 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 połączeń
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, możesz połączyć wywołania metod w jednym wierszu. (Typy zwracane są wyświetlane zarówno w funkcji autouzupełniania, 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.');
Dostęp do zajęć dla dzieci
Każda usługa zawiera co najmniej jedną klasę podrzędną, do której nie można uzyskać dostępu z najwyższego poziomu, tak jak do obiektu globalnego. Nie możesz używać słowa kluczowego new
do tworzenia tych klas, tak jak w przypadku standardowych klas JavaScript, np. Date
. Dostęp do klasy podrzędnej możesz 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ą dokumentacji referencyjnej usługi i poszukaj metody, która zwraca odpowiednią klasę.
Obsługa interfejsów
Niektóre usługi zawierają specjalne klasy, które w dokumentacji są oznaczone 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 usługi dokumentów Body.getChild(childIndex)
zwraca ogólny obiekt Element
.
Element
to interfejs reprezentujący inną klasę, np. Paragraph
lub Table
. Obiekty interfejsu rzadko są przydatne same w sobie. Zamiast tego zwykle wywołujesz metodę taką jak Element.asParagraph()
, aby przekształcić obiekt z powrotem w dokładną klasę.
Praca z wyliczeniami
Większość usług zawiera kilka wyliczeń (typów wyliczeniowych) nazwanych wartości. Na przykład usługa Dysku 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. 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);