Tetikleyiciler, belirli bir etkinlik (ör. doküman açma) gerçekleştiğinde Apps Script'in bir işlevi otomatik olarak çalıştırmasına olanak tanır. Basit tetikleyiciler, Apps Komut Dosyası'na yerleştirilmiş bir dizi ayrılmış işlevdir. Örneğin, kullanıcı bir Google Dokümanlar, E-Tablolar, Slaytlar veya Formlar dosyası açtığında çalışan onOpen(e)
işlevi.
Yüklenebilir tetikleyiciler, basit tetikleyicilerden daha fazla özellik sunar ancak kullanılmadan önce etkinleştirilmelidir. Apps Script, her iki tetikleyici türü için de tetiklenen işleve, etkinliğin gerçekleştiği bağlamla ilgili bilgileri içeren bir etkinlik nesnesi iletir.
Başlarken
Basit bir tetikleyici kullanmak için aşağıdaki ayrılmış işlev adlarından birini kullanan bir işlev oluşturmanız yeterlidir:
onOpen(e)
, kullanıcı düzenleme izni olan bir e-tabloyu, dokümanı, sunuyu veya formu açtığında çalışır.onInstall(e)
, kullanıcı Google Dokümanlar, E-Tablolar, Slaytlar veya Formlar'dan bir Düzenleyici eklentisi yüklediğinde çalışır.onEdit(e)
, bir kullanıcı e-tablodaki bir değeri değiştirdiğinde çalışır.onSelectionChange(e)
, kullanıcı bir e-tablodaki seçimi değiştirdiğinde çalışır.doGet(e)
, kullanıcı bir web uygulamasını ziyaret ettiğinde veya bir program bir web uygulamasına HTTPGET
isteği gönderdiğinde çalışır.doPost(e)
, bir program bir web uygulamasına HTTPPOST
isteği gönderdiğinde çalışır.
Yukarıdaki işlev adlarındaki e
parametresi, işleve iletilen bir etkinlik nesnesidir. Nesne, tetikleyicinin tetiklenmesine neden olan bağlamla ilgili bilgiler içerir ancak bu nesne isteğe bağlıdır.
Kısıtlamalar
Basit tetikleyiciler, kullanıcıdan yetki istemeden otomatik olarak tetiklendiğinden çeşitli kısıtlamalara tabidir:
- Komut dosyasının bir Google E-Tablolar, Slaytlar, Dokümanlar veya Formlar dosyasına bağlı ya da bu uygulamalardan birini genişleten bir eklenti olması gerekir.
- Dosya salt okuma (görüntüleme veya yorum) modunda açılırsa bu makrolar çalışmaz.
- Komut dosyası yürütmeleri ve API istekleri, tetikleyicilerin çalışmasına neden olmaz. Örneğin, bir hücreyi düzenlemek için
Range.setValue()
çağrısı yapıldığında e-tablonunonEdit
tetikleyicisi çalışmaz. - Ancak yetkilendirme gerektiren hizmetlere erişemezler. Örneğin, Gmail hizmeti yetkilendirme gerektirdiği için basit bir tetikleyici e-posta gönderemez, ancak basit bir tetikleyici bir ifadeyi anonim olan Dil hizmeti ile çevirebilir.
- Bağlı oldukları dosyayı değiştirebilirler ancak yetkilendirme gerektireceği için diğer dosyalara erişemezler.
- Bu yöneticiler, karmaşık güvenlik kısıtlamaları kümesine bağlı olarak mevcut kullanıcının kimliğini belirleyip belirleyemeyebilir.
- 30 saniyeden uzun süre yayınlanamaz.
- Belirli durumlarda Düzenleyici Eklentileri,
onOpen(e)
veonEdit(e)
basit tetikleyicilerini bazı ek komplikasyonlar sunan yetkilendirmesiz modda çalıştırır. Daha fazla bilgi için eklenti yetkilendirme yaşam döngüsü kılavuzuna bakın. - Basit tetikleyiciler, Apps Komut Dosyası tetikleyicisi olan kota sınırlarına tabidir.
Bu kısıtlamalar doGet(e)
veya doPost(e)
için geçerli değildir.
onOpen(e)
Bir kullanıcı düzenleme iznine sahip olduğu bir e-tabloyu, dokümanı, sunuyu veya formu açtığında onOpen(e)
tetikleyicisi otomatik olarak çalışır. (Tetikleyici bir forma yanıt verirken değil, yalnızca düzenlemek için formu açarken çalışır.) onOpen(e)
, en yaygın olarak Google E-Tablolar, Slaytlar, Dokümanlar veya Formlar'a özel menü öğeleri eklemek için kullanılır.
onInstall(e)
onInstall(e)
tetikleyicisi, bir kullanıcı Google Dokümanlar, E-Tablolar, Slaytlar veya Formlar'dan Düzenleyici eklentisi yüklediğinde otomatik olarak çalışır. Kullanıcı eklentiyi Google Workspace Marketplace web sitesinden yüklediğinde tetikleyici çalışmaz. onInstall(e)
'ün yapabileceği işlemler konusunda belirli kısıtlamalar olduğunu unutmayın. Yetkilendirme hakkında daha fazla bilgi edinin.
onInstall(e)
işlevinin en yaygın kullanımı, özel menüler eklemek için onOpen(e)
işlevini çağırmaktır. Sonuçta, bir eklenti yüklendiğinde dosya zaten açıktır ve bu nedenle dosya yeniden açılmadığı sürece onOpen(e)
kendi kendine çalışmaz.
onEdit(e)
onEdit(e)
tetikleyicisi, bir kullanıcı e-tablodaki herhangi bir hücrenin değerini değiştirdiğinde otomatik olarak çalışır. Çoğu onEdit(e)
tetikleyici, uygun şekilde yanıt vermek için etkinlik nesnesinde bulunan bilgileri kullanır.
Örneğin, aşağıdaki onEdit(e)
işlevi, hücrede en son ne zaman düzenlendiğini kaydeden bir yorum ayarlar.
onSelectionChange(e)
onSelectionChange(e)
tetikleyicisi, bir kullanıcı e-tablodaki seçimi değiştirdiğinde otomatik olarak çalışır. Bu tetikleyiciyi etkinleştirmek için tetikleyici eklendikten sonra ve e-tablo her açıldığında e-tabloyu yenilemeniz gerekir.
Seçim kısa sürede birden fazla hücre arasında hareket ederse gecikmeyi azaltmak için bazı seçim değişikliği etkinlikleri atlanabilir. Örneğin, birbirinden iki saniye içinde çok sayıda seçim değişikliği yapılırsa yalnızca ilk ve son seçim değişiklikleri onSelectionChange(e)
tetikleyicisini etkinleştirir.
Aşağıdaki örnekte, boş bir hücre seçilirse onSelectionChange(e)
işlevi hücrenin arka planını kırmızıya ayarlar.
doGet(e)
ve doPost(e)
doGet(e)
tetikleyicisi, bir kullanıcı web uygulamasını ziyaret ettiğinde veya bir program bir web uygulamasına HTTP GET
isteği gönderdiğinde otomatik olarak çalışır. doPost(e)
tetikleyicisi, bir program bir web uygulamasına HTTP POST
isteği gönderdiğinde çalışır. Bu tetikleyiciler, web uygulamaları, HTML hizmeti ve İçerik hizmeti ile ilgili kılavuzlarda daha ayrıntılı olarak gösterilmektedir. doGet(e)
ve doPost(e)
'ın yukarıda listelenen kısıtlamalara tabi olmadığını unutmayın.
Kullanılabilir tetikleyici türleri
Basit tetikleyicilerdeki kısıtlamalar, bu tetikleyicilerin ihtiyaçlarınızı karşılamasını engelliyorsa bunun yerine yüklenebilir tetikleyici kullanabilirsiniz. Aşağıdaki tabloda, her etkinlik türü için hangi tetikleyici türlerinin kullanılabildiği özetlenmektedir. Örneğin, Google E-Tablolar, Slaytlar, Formlar ve Dokümanlar basit açık tetikleyicileri destekler, ancak yalnızca E-Tablolar, Dokümanlar ve Formlar yüklenebilir açık tetikleyicileri destekler.
Etkinlik | Basit tetikleyiciler | Yüklenebilir tetikleyiciler |
---|---|---|
Aç |
|
|
Düzenle |
|
|
Seçim değişikliği |
|
|
Yükle |
|
|
Değiştir |
|
|
Form gönderme |
|
|
Zamana dayalı (saat) |
|
|
Get |
|
|
Gönderi |
|
* Google Formlar için açık etkinliği, bir kullanıcı yanıt vermek üzere formu açtığında değil, bir düzenleyici formu değiştirmek için açtığında gerçekleşir.