Google Apps Komut Dosyası; kullanıcı verileri, 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 sunar. Apps Komut Dosyası'nın E-tablo hizmeti de openById(id)
gibi yöntemler, Range
gibi alt nesneler ve DataValidationCriteria
gibi numaralandırmalar sunar.
Google Workspace Ürünlerini kontrol eden hizmetlerle ilgili 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 ayrıştırma veya günlük verilerini yazma gibi işlemler) "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ı ve 1.7 ile 1.8'deki birkaç özelliği temel alır. Komut dosyanızla kullanacağınız ç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ızda Array
, Date
ve RegExp
gibi ortak nesnelerin yanı sıra Math
ve Object
global nesneler kullanılabilir.
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. Genel nesne, sıralama veya Apps Komut Dosyası sınıfı döndüren yöntem çağrısından sonra bir nokta yazdığınızda otomatik tamamlama önerileri otomatik olarak gösterilir. Ö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.
Küresel nesneleri anlama
Her hizmet en az bir global (üst düzey) nesne sağlar. Örneğin, Gmail hizmetine yalnızca GmailApp
nesnesinden erişilebilir. Bazı hizmetler birden çok global nesne sağlar. Örneğin, Temel hizmet dört küresel nesne içerir:
Browser
,
Logger
,
MimeType
ve
Session
.
Arama yöntemleri
Neredeyse tüm yerleşik veya gelişmiş hizmetlerin global nesneleri, veri veya Apps Komut Dosyası sınıfını döndüren yöntemler 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 şu şekilde ç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ürse tek bir satır üzerinde zincir yöntem çağrısı oluşturabilirsiniz. (Dönüş türleri hem otomatik tamamlamada hem de bir yöntemin referans belgelerinde 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.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 nesnenin erişebildiği şekilde üst düzeyden erişilemeyen bir veya daha fazla alt sınıf içerir. 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, 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 belgelerinin 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
Bir dizi hizmet, referans belgelerinde "arayüzler" olarak etiketlenen özel sınıflar içerir. Bunlar, türü önceden tam olarak belirleyemeyen yöntemler için dönüş 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
, 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 yayınlamak için genellikle Element.asParagraph()
gibi bir yöntemi çağırmak istersiniz.
Sıralamalarla çalışma
Çoğu hizmet, adlandırılmış değerlerin birkaç numaralandırmasını (sıralanmış tür) içerir. Örneğin Drive hizmeti, hangi kullanıcıların bir dosyaya veya klasöre erişimi olduğunu belirlemek için Access
ve Permission
numaralandırmalarını kullanır. Neredeyse her durumda, bu numaralandırmalara global nesneden erişirsiniz. Örneğin, Folder.setSharing(accessType, permissionType)
yöntemine yapılan bir çağrı aşağıdaki gibi 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);