Yerleşik Google Hizmetleri

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 belgeleri, 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 kullanacağınız çalışma zamanını serbestçe seçebilirsiniz ancak V8 çalışma zamanı kesinlikle önerilir.

Her çalışma zamanı, yerleşik ve gelişmiş Google hizmetlerine ek olarak 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.

Otomatik tamamlama özelliğini kullanma

Komut dosyası düzenleyicide, daha yaygın olarak "otomatik tamamlama" olarak adlandırılan bir "içerik yardımı" özelliği bulunur. Bu özellik, global nesnelerin yanı sıra komut dosyasının mevcut bağlamında geçerli olan yöntemleri ve numaralandırmaları 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çerseniz, ardından . (nokta) yazarsanız bu sınıfla ilgili tüm yöntemleri ve numaralandırmaları 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 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 genel nesne sağlar. Örneğin, Base service 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 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 zincirleyebilirsiniz. (Dönüş türleri hem otomatik tamamlama özelliğinde hem de bir yöntemin referans dokümanları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.');

Çocuk sınıflarına erişme

Her hizmet, üst düzeyden genel bir nesne olarak erişilemeyen bir veya daha fazla alt sınıf içerir. Bu sınıfları oluşturmak için new anahtar kelimesini kullanamazsınız. Bu anahtar kelimeyi, Date gibi standart JavaScript sınıflarında kullanabilirsiniz. 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 çalışma

Birkaç hizmet, referans belgelerinde "arayüzler" olarak etiketlenen özel sınıflar içerir. Bunlar, kesin türü önceden belirlenemeyen yöntemler için dönüş türü olarak kullanılan genel sınıflardır. Örneğin, Document hizmeti yöntemi Body.getChild(childIndex) genel bir Element nesnesi döndürür. Element, başka bir sınıfı temsil eden bir arayüzdür. Bu sınıf, Paragraph veya Table olabilir. Arayüz nesneleri tek başlarına nadiren kullanışlıdır. Bunun yerine, nesneyi tekrar kesin bir sınıfa dönüştürmek için genellikle Element.asParagraph() gibi bir yöntemi çağırmak istersiniz.

Numaralandırmalarla çalışma

Çoğu hizmet, adlandırılmış değerlerin birkaç enum'ını (numaralandırılmış türler) içerir. Örneğin, 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. Neredeyse tüm durumlarda bu numaralandırmalara genel 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);