Yerleşik Google Hizmetleri

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 küresel nesneler olarak sunulur. Örneğin, Math ürününün 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 numaralandırmalar sunar.

Google Workspace ürünlerini kontrol eden hizmetler için referans dokümanları, bu sitenin kenar çubuğundaki "Referans" başlığının altındaki "Google Workspace Hizmetler" 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 verilerini 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 ile 1.8 arasındaki birkaç özelliğe dayanır. Komut dosyanızla hangi çalışma zamanını kullanacağınızı 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ız Array, Date, RegExp, vb. gibi yaygın nesneleri ve Math ile Object global nesneleri kullanabilir.

Otomatik tamamlamayı kullanma

Komut dosyası düzenleyici, komut dosyasının mevcut bağlamında geçerli olan yöntem ve numaralandırmaların yanı sıra genel nesneleri de ortaya çıkaran bir "içerik yardımı" özelliği sunar. Bir Apps Komut Dosyası sınıfı döndüren genel nesne, enum 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çer ve ardından . (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 küresel 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 bir Apps Komut Dosyası sınıfı döndüren yöntemleri 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ğı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ı 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 bir 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.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 en üst düzeyden erişilemeyen bir veya daha fazla alt sınıf içerir. Bu sınıfları oluşturmak için new anahtar kelimesini, Date gibi standart JavaScript sınıflarında olduğu gibi 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 başvuru belgelerinin 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 belgelerde "arayüzler" olarak etiketlenmiş özel sınıflar içerir. Bunlar, tam türü önceden 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, muhtemelen Paragraph veya Table olabilecek başka bir sınıfı temsil eden bir arayüzdür. Arayüz nesneleri kendi başlarına nadiren faydalıdır. Bunun yerine, nesneyi kesin bir sınıfa geri döndürmek için genellikle Element.asParagraph() gibi bir yöntem çağırmak istersiniz.

Enum'larla ç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 enum'ları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ı 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);