Google Apps Komut Dosyası; kullanıcı verileriyle, diğer Google sistemleri ve harici sistemlerle etkileşim 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 sabit değerler sunduğu gibi, Apps Komut Dosyası'nın E-Tablo hizmeti de openById(id)
, Range
gibi sınıflar (alt nesneler) ve DataValidationCriteria
gibi sıralamalar sunar.
Google Workspace Ürünlerini kontrol eden hizmetler için referans dokümanlar, bu sitenin kenar çubuğunda yer alan "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 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 daha 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ına ve 1.7 ile 1.8'deki birkaç özelliğe dayanır. Komut dosyanızla kullanılacak hangi ç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 hizmetlerinin yanı sıra komut dosyanızda kullanılabilen JavaScript sınıflarını ve nesnelerini destekler. Komut dosyalarınız Array
, Date
, RegExp
vb. ortak nesnelerin yanı sıra Math
ve Object
global nesneleri de kullanabilir.
Otomatik tamamlamayı kullanma
Komut dosyası düzenleyici, komut dosyasının mevcut bağlamında geçerli olan yöntemleri ve numaralandırmaların yanı sıra genel nesneleri de ortaya çıkaran bir "içerik yardımı" özelliği sağlar. Bu özellik daha yaygın olarak "otomatik tamamlama" olarak adlandırılır. Bir Apps Komut Dosyası sınıfı döndüren genel nesne, numaralandırma veya yöntem çağrısından sonra bir nokta yazdığınızda Otomatik Tamamlama önerileri otomatik olarak görünür. Örneğin:
- Global bir nesnenin tam adını yazar veya otomatik tamamlama özelliğinden bir ad seçip
.
(bir nokta) yazarsanız söz konusu sınıfa ait tüm yöntemleri ve enum'ları görürsünüz. - Birkaç karakter yazarsanız bu karakterlerle 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şilebilir. Bazı hizmetler birden fazla genel nesne sağlar. Örneğin, Temel hizmet dört genel nesne içerir:
Browser
,
Logger
,
MimeType
ve
Session
.
Arama yöntemleri
Neredeyse tüm yerleşik veya gelişmiş hizmetlerin genel nesneleri, veri döndüren yöntemleri veya bir Apps Komut Dosyası sınıfını içerir. Komut dosyaları, şu biçimde yöntem çağrıları yapar:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Örneğin, bir komut dosyası Gmail hizmetinin sendEmail(recipient, subject, body)
yöntemini çağırarak e-posta gönderebilir. Örneğin:
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ürse yöntem çağrılarını tek bir satırda zincirleyebilirsiniz. (Dönüş türleri hem otomatik tamamlamada hem de bir yöntemin referans belgelerinde gösterilir.) Örneğin, DocumentApp.create()
yöntemi Document
döndürür. Bu nedenle, kodun aşağıdaki iki bölümü eşdeğerdir:
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.');
Alt sınıflara erişme
Her hizmet, global bir nesne gibi üst düzeyden erişilemeyen bir veya daha fazla alt sınıf içerir. Bu sınıfları oluşturmak için Date
gibi standart JavaScript sınıflarında olduğu gibi new
anahtar kelimesini kullanamazsınız; bir alt sınıfa yalnızca onu döndüren bir yöntem ç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 ilgilenme
Bazı hizmetler, referans belgelerinde "arayüzler" olarak etiketlenmiş özel sınıflar içerir. Bunlar, kesin türü önceden belirleyemeyen yöntemler için döndürme türü olarak kullanılan genel sınıflardır. Örneğin, Belge hizmeti yöntemi Body.getChild(childIndex)
genel bir Element
nesnesi döndürür.
Element
, muhtemelen Paragraph
veya Table
olabilecek başka bir sınıfı temsil eden bir arayüzdür. Arayüz nesneleri tek başlarına nadiren yararlıdır. Bunun yerine, nesneyi kesin bir sınıfa geri döndürmek için genellikle Element.asParagraph()
gibi bir yöntem çağırmayı tercih edersiniz.
Sıralamalarla çalışma
Çoğu hizmet, adlandırılmış değer için birkaç numaralandırma (sıralanmış tür) içerir. Örneğin, Drive hizmeti bir dosyaya veya klasöre erişimi olan kullanıcıları belirlemek için Access
ve Permission
numaralandırmalarını kullanır. Neredeyse her durumda bu enum'lara global nesneden 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);