Google Apps Script udostępnia ponad 30 wbudowanych usług do interakcji z danymi użytkownika, innymi systemami Google i systemami zewnętrznymi. Te usługi są udostępniane jako obiekty globalne podobne do standardowego obiektu Math
w JavaScript. Podobnie jak Math
udostępnia metody takie jak random()
i stałe takie jak PI
, usługa Arkusz kalkulacyjny w Apps Script udostępnia metody takie jak openById(id)
, klasy (obiekty podrzędne) takie jak Range
i enumeracje takie jak DataValidationCriteria
.
Dokumentacja referencyjna usług, które kontrolują produkty , jest zebrana w sekcji „ Usługi” pod nagłówkiem „Dokumentacja” w sekcji bocznej tej witryny. Usługi pomocnicze (np. do tworzenia interfejsów użytkownika, analizowania kodu XML lub zapisywania danych dziennika) są zbierane w sekcji „Usługi skryptu”.
Nowoczesne funkcje JavaScriptu
Apps Script obsługuje 2 środowiska wykonawcze JavaScriptu: nowoczesne środowisko V8 oraz starsze środowisko oparte na interpreterze JavaScriptu Rhino firmy Mozilla.
Środowisko wykonawcze V8 obsługuje nowoczesną składnię i funkcje ECMAScript. Środowisko wykonawcze Rhino jest oparte na starszej normie JavaScript 1.6, a także kilku funkcjach z wersji 1.7 i 1.8. Możesz dowolnie wybrać środowisko wykonawcze, którego chcesz użyć ze skryptem, ale zdecydowanie zalecamy użycie środowiska wykonawczego V8.
Każde środowisko uruchomieniowe obsługuje klasy i obiekty JavaScript dostępne dla skryptu, a także wbudowane zaawansowane usługi Google. Twoje skrypty mogą używać typowych obiektów, takich jak Array
, Date
, RegExp
i podobnych, a także obiektów globalnych Math
i Object
.
Korzystanie z autouzupełniania
Edytor skryptów udostępnia funkcję „pomocy w tworzeniu treści”, która jest często nazywana „autouzupełnianiem”. Umożliwia ona wyświetlanie obiektów globalnych oraz metod i typów enumeracji, które są ważne w bieżącym kontekście skryptu. Sugestie uzupełniania automatycznie wyświetlają się, gdy wpiszesz kropkę po wywołaniu obiektu globalnego, typu enumeracji lub metody, które zwracają klasę Apps Script. Na przykład:
- Jeśli wpiszesz pełną nazwę obiektu globalnego lub wybierzesz go z autouzupełniania, a potem wpiszesz
.
(kropkę), zobaczysz wszystkie metody i enumeracje dla tej klasy. - Jeśli wpiszesz kilka znaków, zobaczysz wszystkie prawidłowe sugestie, które się na nie zaczynają.
Obiekty globalne
Każda usługa udostępnia co najmniej 1 obiekt globalny (na najwyższym poziomie). Na przykład dostęp do usługi Gmail mają tylko obiekty GmailApp
. Niektóre usługi udostępniają wiele obiektów globalnych. Na przykład usługa Base service zawiera 4 obiekty globalne: Browser
, Logger
, MimeType
i Session
.
Wywoływanie metod
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);
Skrypt może na przykład 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 zwracanych wartości są widoczne zarówno w autouzupełnianiu, jak i w dokumentacji metody). Na przykład metoda DocumentApp.create()
zwraca Document
, więc te 2 sekcje 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.');
Otwieranie zajęć podrzędnych
Każda usługa zawiera co najmniej jedną klasę podrzędną, do której nie można uzyskać dostępu z poziomu najwyższego, tak jak w przypadku obiektu globalnego. Nie możesz używać słowa kluczowego new
do tworzenia tych klas, tak jak w przypadku standardowych klas JavaScript, takich jak Date
; możesz uzyskać dostęp do klasy podrzędnej 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ę.
Praca z interfejsami
Kilka usług zawiera specjalne klasy opisane w dokumentacji referencyjnej jako „interfejsy”. Są to ogólne klasy używane jako typy zwracane w metodach, które nie mogą z góry określić dokładnego typu. Na przykład metoda Document serviceBody.getChild(childIndex)
zwraca ogólny obiekt Element
.
Element
to interfejs reprezentujący inną klasę, prawdopodobnie Paragraph
lub Table
. Obiekty interfejsu rzadko są przydatne same w sobie. Zamiast tego zwykle wywołujesz metodę, taką jak Element.asParagraph()
, aby zamienić obiekt z powrotem w określoną klasę.
Praca z typami wyliczeniowymi
Większość usług zawiera kilka typów wyliczeniowych (wyliczanych) z nazwanymi wartościami. Na przykład usługa Dysk używa enumeracji Access
i Permission
, aby określić, którzy użytkownicy mają dostęp do pliku lub folderu. W prawie wszystkich przypadkach te typy enumeracji są dostępne 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 users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);