Google Apps Komut Dosyası, kullanıcı verileriyle, diğer Google sistemleriyle 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
'te random()
gibi yöntemler ve PI
gibi sabitler olduğu gibi, Apps Script'in E-Tablo hizmeti'nde openById(id)
gibi yöntemler, Range
gibi sınıflar (alt nesneler) ve DataValidationCriteria
gibi enum'lar bulunur.
Google Workspace Ürünlerini kontrol eden hizmetlere ilişkin referans belgeler, bu sitenin kenar çubuğundaki "Referans" başlığının altındaki "Google Workspace Hizmetler" bölümünde toplanmıştır. Yardımcı hizmetler (kullanıcı arayüzü oluşturma, XML'i 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 bir ç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ği temel alır. Komut dosyanızla kullanmak istediğiniz çalışma zamanını özgürce seçebilirsiniz ancak V8 çalışma zamanı kesinlikle önerilir.
Her çalışma zamanı, yerleşik ve gelişmiş Google hizmetlerine ek olarak komut dosyanız için mevcut JavaScript sınıflarını ve nesnelerini destekler. Komut dosyalarınız Array
, Date
ve RegExp
vb.
ya da Math
ve Object
global nesneleri kullanabilir.
Otomatik tamamlamayı kullanma
Komut dosyası düzenleyici, daha yaygın olarak "otomatik tamamlama" olarak adlandırılan bir "içerik yardımı" özelliği sağlar. Bu özellik, komut dosyasının mevcut bağlamında geçerli olan yöntemler ve sıralamaların yanı sıra genel nesneleri de ortaya çıkarır. Otomatik tamamlama önerileri, bir Apps Script sınıfı döndüren global nesne, enum veya yöntem çağrısından sonra nokta yazdığınızda otomatik olarak görünür. Örneğin:
- Genel bir nesnenin tam adını yazar veya otomatik tamamlamadan bir ad seçer ve ardından
.
(nokta) yazarsanız söz konusu sınıfa ait tüm yöntemleri ve numaralandırmaları görürsünüz. - Birkaç karakter yazarsanız bu karakterle başlayan tüm geçerli önerileri görürsünüz.
Global nesneleri anlama
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 global nesne sağlar. Örneğin, temel hizmet dört global nesne içerir: Browser
, Logger
, MimeType
ve Session
.
Arama yöntemleri
Hemen hemen tüm yerleşik veya gelişmiş hizmetlerin genel nesneleri, veri veya 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 şu şekilde çağırarak e-posta gönderebilir:
GmailApp.sendEmail('[email protected]', 'Subject line', 'This is the body.');
Bir yöntem başka bir Apps Script sınıfı döndürürse yöntem çağrılarını tek satırda zincirleyebilirsiniz. (İade türleri hem otomatik tamamlamada hem de bir yöntemin referans dokümanlarında gösterilir.) Örneğin, DocumentApp.create()
yöntemi bir Document
değeri döndürür. Dolayısıyla, kodun aşağıdaki iki 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.');
Alt sınıflara erişme
Her hizmet, genel nesnelerin erişebildiği üst düzeyden erişilemeyen bir veya daha fazla alt sınıf içerir. Date
gibi standart JavaScript sınıflarında yapabileceğiniz gibi, bu sınıfları oluşturmak için new
anahtar kelimesini kullanamazsınız. Bir alt sınıfa yalnızca onu döndüren bir yöntemi çağırarak erişebilirsiniz. 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 ve istediğiniz sınıfı döndüren bir yöntem arayın.
Arayüzlerle ilgili işlemler
Referans dokümanlarında "arayüz" olarak etiketlenen özel sınıflar içeren birkaç hizmet vardır. Bunlar, tam türü önceden belirleyemeyen yöntemler için dönüş türü olarak kullanılan genel sınıflardır. Örneğin, Doküman hizmeti yöntemiBody.getChild(childIndex)
, genel bir Element
nesnesi döndürür.
Element
, başka bir sınıfı (muhtemelen Paragraph
veya Table
) temsil eden bir arayüzdür. Arayüz nesneleri kendi başlarına nadiren faydalıdır. Bunun yerine, nesneyi belirli bir sınıfa geri döndürmek için genellikle Element.asParagraph()
gibi bir yöntemi çağırmak istersiniz.
Sıralamalarla çalışma
Çoğu hizmet, adlandırılmış değerlerden oluşan birkaç enum (listelenmiş tür) içerir. Örneğin, Drive hizmeti, bir dosyaya veya klasöre hangi kullanıcıların erişimi olduğunu belirlemek için Access
ve Permission
adlı enum'ları kullanır. Neredeyse her durumda bu enumlara genel nesne üzerinden erişirsiniz. Örneğin, Folder.setSharing(accessType, permissionType)
yöntemine yapılan bir çağrı şu şekilde görünür:
// 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);