Google Apps Komut Dosyası, kullanıcı verileri, diğer Google sistemleri ve harici sistemlerle etkileşim kurmak için 30'dan fazla yerleşik hizmet sunar. Bu hizmetler, JavaScript'in standart Math nesnesine benzer şekilde global nesneler olarak sağlanır. Örneğin, Math, random() gibi yöntemler ve PI gibi sabitler sunarken Apps Script'in Spreadsheet hizmeti, openById(id) gibi yöntemler, Range gibi sınıflar (alt nesneler) ve DataValidationCriteria gibi numaralandırmalar sunar.
Google Workspace ürünlerini kontrol eden hizmetlerle ilgili referans dokümanları, bu sitenin kenar çubuğundaki "Referans" başlığı altındaki "Google Workspace Hizmetleri" bölümünde toplanmıştır. Yardımcı program hizmetleri (kullanıcı arayüzü oluşturma, XML ayrıştırma veya günlük verileri yazma gibi işlemler için) "Komut Dosyası Hizmetleri" bölümünde toplanır.
Modern JavaScript özellikleri
Apps Komut Dosyası iki JavaScript çalışma zamanını destekler: modern V8 çalışma zamanı ve Mozilla'nın Rhino JavaScript yorumlayıcısı tarafından desteklenen eski çalışma zamanı.
V8 çalışma zamanı, modern ECMAScript söz dizimini ve özelliklerini destekler. Rhino çalışma zamanı, eski JavaScript 1.6 standardının yanı sıra 1.7 ve 1.8'deki birkaç özelliğe dayanır. Komut dosyanızla hangi çalışma zamanını kullanacağınızı seçin. V8 çalışma zamanı kesinlikle önerilir.
Her çalışma zamanı, yerleşik ve gelişmiş Google hizmetlerinin yanı sıra komut dosyanızda kullanılabilen JavaScript sınıflarını ve nesnelerini destekler. Komut dosyalarınızda Array, Date, RegExp, vb. gibi yaygın nesnelerin yanı sıra Math ve Object genel nesneleri de kullanabilirsiniz.
Apps Komut Dosyası kodu, Google'ın sunucularında çalıştığı için (HTML hizmeti sayfaları hariç) DOM manipülasyonu veya Window API gibi tarayıcı tabanlı JavaScript özellikleri Apps Komut Dosyası'nda kullanılamaz.
Otomatik tamamlama
Komut dosyası düzenleyicide, daha yaygın olarak "otomatik tamamlama" olarak adlandırılan bir "içerik yardımı" özelliği bulunur. Bu özellik, komut dosyasının mevcut bağlamında geçerli olan yöntemlerin ve numaralandırmaların yanı sıra global nesneleri de gösterir. Bir genel nesne, enum veya Apps Komut Dosyası sınıfı döndüren bir yöntem çağrısından sonra nokta yazdığınızda otomatik tamamlama önerileri otomatik olarak gösterilir. Örneğin:
- Bir genel nesnenin tam adını yazarsanız veya otomatik tamamlama özelliğinden birini seçip
.(nokta) yazarsanız bu sınıfla ilgili tüm yöntemleri ve numaralandırılmış değerleri görürsünüz. - Birkaç karakter yazdığınızda, bu karakterlerle başlayan tüm geçerli önerileri görürsünüz.
Genel nesneler
Her hizmet en az bir genel (üst düzey) nesne sağlar. Örneğin, Gmail hizmetine yalnızca GmailApp nesnesinden erişilir. Bazı hizmetler birden fazla genel nesne sağlar. Örneğin, Base service dört genel nesne içerir: Browser, Logger, MimeType ve Session.
Yöntemler
Neredeyse tüm yerleşik veya gelişmiş hizmetlerin genel nesneleri, veri ya da Apps Komut Dosyası sınıfı döndüren yöntemler içerir. Komut dosyaları, yöntem çağrılarını şu biçimde yapar:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Örneğin, bir komut dosyası, Gmail hizmetinin sendEmail(recipient, subject, body) yöntemini aşağıdaki gibi çağırarak e-posta gönderebilir:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
Bir yöntem başka bir Apps Komut Dosyası sınıfı döndürüyorsa yöntem çağrılarını tek bir satırda zincirleyin. (Dönüş türleri hem otomatik tamamlama özelliğinde hem de bir yöntemin referans dokümanında gösterilir.) Örneğin, DocumentApp.create() yöntemi Document döndürür. Bu nedenle, aşağıdaki iki kod bölümü eşdeğerdir:
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.');
Çocuklara yönelik dersler
Her hizmet, üst düzeyden genel bir nesne olarak erişemeyeceğiniz bir veya daha fazla alt sınıf içerir. Ayrıca, Date gibi standart JavaScript sınıflarında olduğu gibi bu sınıfları oluşturmak için new anahtar kelimesini kullanamazsınız.
Bir alt sınıfa erişmek için onu döndüren bir yöntemi çağırmanız gerekir. Belirli bir sınıfa nasıl erişeceğinizden emin değilseniz hizmetin referans dokümanlarının kök sayfasını ziyaret edin. Bu sayfada, hizmetin sınıfları ve bunları döndüren yöntemler listelenir.
Arayüzler
Bazı hizmetler, referans belgelerinde "arayüzler" olarak etiketlenen sınıfları içerir. Bunlar, kesin türü önceden belirleyemeyen yöntemler için dönüş türü olarak kullanılan genel sınıflardır. Örneğin, Document service yöntemi
Body.getChild(childIndex)
genel bir Element nesnesi döndürür.
Element arayüzü, muhtemelen Paragraph veya Table olan başka bir sınıfı temsil eder. Arayüz nesneleri tek başlarına nadiren kullanışlıdır. Bunun yerine, nesneyi belirli bir sınıfa geri dönüştürmek için Element.asParagraph() gibi bir yöntemi çağırın.
Sıralamalar
Çoğu hizmet, adlandırılmış değerlerin numaralandırılmış türlerini (enum) içerir. Örneğin, Google Drive hizmeti, hangi kullanıcıların bir dosyaya veya klasöre erişebileceğini belirlemek için Access ve Permission numaralandırmalarını kullanır. Çoğu durumda, bu numaralandırılmış değerlere aşağıdaki örnekte gösterildiği gibi genel nesneden erişirsiniz:
// 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);