Apps Komut Dosyası tetikleyicileri, belirtilen bir etkinlik her gerçekleştiğinde belirtilen bir komut dosyası işlevinin (tetikleyici işlevi) yürütülmesine neden olur. Yalnızca belirli etkinlikler tetikleyicilerin çalışmasına neden olabilir ve her Google Workspace uygulaması farklı bir etkinlik grubunu destekler.
Bir tetikleyici tetiklendiğinde etkinlik nesnesi oluşturulur. Bu JSON yapısı, meydana gelen etkinlik hakkında ayrıntılar içerir. Etkinlik nesnesi yapısındaki bilgiler, tetikleyici türüne göre farklı şekilde düzenlenir.
Etkinlik nesnesi oluşturulduktan sonra Apps Komut Dosyası, bunu tetikleyici işlevine parametre olarak aktarır. Tetikleyici işlevi, etkinliğe yanıt vermek için uygun işlemleri gerçekleştirmek üzere kendiniz uygulamanız gereken bir geri çağırma işlevidir. Örneğin, bir Düzenleyici eklentisinde, doküman açıldığında eklenti menü öğeleri oluşturmak için tetikleyici kullanılır. Bu durumda, eklentinin ihtiyaç duyduğu menü öğelerini oluşturmak için onOpen(e) tetikleyici işlevini uygulayın. Bu işlemde, etkinlik nesnesindeki verileri kullanabilirsiniz.
Bu sayfada, eklenti projelerinde tetikleyicileri kullanmayla ilgili yönergeler verilmektedir.
Düzenleyici eklentisi tetikleyici türleri
Google Apps Komut Dosyası projelerinde kullanılabilen genel tetikleyici türlerinin çoğunu (basit tetikleyiciler ve çoğu yüklenebilir tetikleyici dahil) Editor eklentilerinde kullanabilirsiniz. Kullanılabilir tetikleyici türlerinin tam olarak hangileri olduğu, genişletilen uygulamaya bağlıdır.
Google Workspace eklentileri, Düzenleyici eklentilerinin aksine genel Apps Komut Dosyası basit veya yüklenebilir tetikleyicilerini kullanamaz. Bunun yerine, Google Workspace eklentileri için özel olarak tasarlanmış tetikleyiciler kullanılır. Daha fazla bilgi için Google Workspace eklentileri tetikleyicileri başlıklı makaleyi inceleyin.
Aşağıdaki tabloda, Editor eklentilerinin kullanabileceği basit ve yüklenebilir tetikleyici türleri gösterilmekte ve ilgili etkinlik nesnelerinin bağlantıları verilmektedir:
| Etkinlik | Etkinlik nesnesi | Basit tetikleyiciler | Yüklenebilir tetikleyiciler |
|---|---|---|---|
| Aç Bir düzenleyici dosyası açılır. |
Docs onOpen event object Forms onOpen event object Sheets onOpen event object Slides onOpen event object |
Dokümanlar
Formlar*
E-Tablolar
Slaytlar
|
Dokümanlar
Formlar
E-Tablolar
|
| Yükle'yi tıklayın. Eklenti yüklenir. |
onInstall etkinlik nesnesi |
Dokümanlar
Formlar
E-Tablolar
Slaytlar
|
|
| Düzenleme E-tablo hücresi içeriği değiştirildi. |
Sheets onEdit event object |
E-Tablolar
|
E-Tablolar |
| Değiştir Bir sayfadaki içerik düzenlenir veya biçimlendirilir. |
Sheets onChange event object |
E-Tablolar |
|
| Form gönderme Bir Google Formu gönderildiğinde. |
Forms form-submit event object Sheets form-submit event object |
Formlar
E-Tablolar
|
|
| Zamana dayalı (saat) Tetikleyici, belirli bir zamanda veya aralıkta etkinleşir. |
Zamana dayalı etkinlik nesnesi |
Dokümanlar
Formlar
E-Tablolar
Slaytlar
|
* Google Formlar'daki açma etkinliği, bir kullanıcı yanıt vermek için formu açtığında değil, bir düzenleyici formu değiştirmek için açtığında gerçekleşir.
Eklentilerdeki basit tetikleyiciler
Basit tetikleyiciler, ayrılmış bir dizi işlev adı kullanır, yetkilendirme gerektiren hizmetleri kullanamaz ve kullanım için otomatik olarak etkinleştirilir. Bazı durumlarda, basit bir tetikleyici etkinliği bunun yerine yüklenebilir bir tetikleyici tarafından işlenebilir.
Aşağıdaki ayrılmış adlardan birine sahip bir işlev uygulayarak eklentiye basit bir tetikleyici ekleyebilirsiniz:
onOpen, kullanıcı bir dokümanı, e-tabloyu veya sunuyu açtığında yürütülür.onOpen, form düzenleyicide açıldığında da çalıştırılabilir (ancak forma yanıt verirken çalıştırılamaz). Yalnızca kullanıcının söz konusu dosyayı düzenleme izni varsa yürütülür ve en sık menü öğeleri oluşturmak için kullanılır.onInstall, kullanıcı bir eklenti yüklediğinde yürütülür. GenellikleonInstallyalnızcaonOpenişlevini çağırmak için kullanılır. Bu, eklenti menülerinin yüklemeden hemen sonra görünmesini sağlar ve kullanıcının sayfayı yenilemesini gerektirmez.onEdit, kullanıcı bir e-tablodaki hücre değerini değiştirdiğinde yürütülür. Bu tetikleyici, hücre değerlerini değiştirmeyen hücre hareketleri, biçimlendirme veya diğer değişikliklere yanıt olarak tetiklenmez.
Kısıtlamalar
Eklentilerdeki basit tetikleyiciler, diğer Apps Komut Dosyası projelerindeki basit tetikleyicileri yöneten aynı kısıtlamalara tabidir. Eklentileri tasarlarken aşağıdaki kısıtlamalara özellikle dikkat edin:
- Basit tetikleyiciler, bir dosya salt okunur (görüntüleme veya yorum yapma) modunda açılırsa çalışmaz. Bu davranış, eklenti menülerinizin doldurulmasını engeller.
- Düzenleyici eklentileri, belirli durumlarda
onOpenveonEditbasit tetikleyicilerini yetkilendirme gerektirmeyen bir modda çalıştırır. Bu mod, eklenti yetkilendirme modelinde belirtildiği gibi komplikasyonları gösterir. - Basit tetikleyiciler, hizmetleri kullanamaz veya eklenti yetkilendirme modelinde belirtilenler dışında yetkilendirme gerektiren başka işlemler yapamaz.
- Basit tetikleyiciler 30 saniyeden uzun süre çalışamaz. Basit bir tetikleyici işlevinde yapılan işlem miktarını en aza indirin.
- Basit tetikleyiciler, Apps Komut Dosyası tetikleyici kota sınırlarına tabidir.
Eklentilerde yüklenebilir tetikleyiciler
Eklentiler, Apps Komut Dosyası Script hizmetiyle programatik olarak yüklenebilir tetikleyiciler oluşturup değiştirebilir. Eklenti yüklenebilir tetikleyiciler manuel olarak oluşturulamaz. Basit tetikleyicilerin aksine, yüklenebilir tetikleyiciler yetkilendirme gerektiren hizmetleri kullanabilir.
Eklentilerdeki yüklenebilir tetikleyiciler, hatalarla karşılaştıklarında kullanıcıya hata e-postaları göndermez. Bunun nedeni, çoğu durumda kullanıcının sorunu çözememesidir. Bu nedenle, mümkün olduğunda eklentinizi hataları kullanıcı adına sorunsuz bir şekilde işleyecek şekilde tasarlamanız gerekir.
Eklentiler aşağıdaki yüklenebilir tetikleyicileri kullanabilir:
- Açma yüklenebilir tetikleyicileri, kullanıcı bir dokümanı veya e-tabloyu açtığında ya da bir form düzenleyicide açıldığında (forma yanıt verirken değil) çalışır.
- Düzenleme yüklenebilir tetikleyicileri, kullanıcı bir e-tablodaki hücre değerini değiştirdiğinde yürütülür. Bu tetikleyici, biçimlendirme veya hücre değerlerini değiştirmeyen diğer değişikliklere yanıt olarak tetiklenmez.
- Değişiklik yüklenebilir tetikleyicileri, kullanıcı bir e-tabloda biçimlendirme düzenlemeleri ve e-tablonun kendisinde yapılan değişiklikler (ör. satır ekleme) dahil olmak üzere herhangi bir değişiklik yaptığında çalışır.
Form gönderme yüklenebilir tetikleyicileri, Google Form yanıtı gönderildiğinde çalışır.
Form gönderme tetikleyicilerinin iki sürümü vardır: biri E-Tablolar (form yanıtlarının toplandığı yer) için, diğeri ise Google Formlar için. E-Tablolar formu gönderme tetikleyici işlevine iletilen etkinlik nesnesi daha basittir ve yanıt değerlerini basit diziler halinde döndürür. Bir Forms form gönderimi tetikleyici işlevine iletilen etkinlik nesnesi,
FormResponsenesnesinde bulunan daha fazla bilgi sağlar.Zamana dayalı tetikleyiciler (saat tetikleyicileri olarak da adlandırılır) belirli bir zamanda veya düzenli aralıklarla tekrar tekrar tetiklenir.
Yüklenebilir tetikleyicilere yetki verme
Normalde, bir geliştirici eklentiyi ek yetkilendirme gerektiren yeni hizmetleri kullanacak şekilde güncellerse kullanıcılar, eklentiyi bir sonraki kullanımlarında yeniden yetkilendirmeye yönlendirilir.
Ancak tetikleyicileri kullanan eklentiler özel yetkilendirme sorunlarıyla karşılaşır. Form gönderimlerini izlemek için tetikleyici kullanan bir eklenti düşünün: Formu oluşturan kişi, eklentiyi ilk kez kullandığında yetkilendirebilir ve formu bir daha hiç açmadan aylarca veya yıllarca çalışmaya bırakabilir. Eklenti geliştiricisi, eklentiyi ek yetkilendirme gerektiren yeni hizmetleri kullanacak şekilde güncellerse formu oluşturan kişi formu yeniden açmadığı için yeniden yetkilendirme iletişim kutusunu görmez ve eklenti çalışmayı durdurur.
Normal Apps Komut Dosyası projelerindeki tetikleyicilerin aksine, eklentilerdeki tetikleyiciler yeniden yetkilendirme gerektirse bile çalışmaya devam eder.
Ancak komut dosyası, yetkilendirme gerektiren bir kod satırına ulaştığında yine de başarısız olur. Bunu önlemek için, eklentinin sürümleri arasında değişen kod bölümlerine erişimi sınırlamak üzere
ScriptApp.getAuthorizationInfo
kullanın.
Aşağıdaki örneklerde, yetkilendirme ile ilgili sorunları önlemek için tetikleyici işlevlerde kullanılması önerilen yapı gösterilmektedir. Örnek tetikleyici işlevi, bir Google E-Tablolar eklentisindeki form gönderme etkinliğine yanıt verir ve yeniden yetkilendirme gerekirse eklentinin kullanıcısına şablonlu HTML kullanarak bir uyarı e-postası gönderir.
Code.gs
authorizationemail.html
Kısıtlamalar
Eklentilerdeki yüklenebilir tetikleyiciler, diğer Apps Komut Dosyası projelerindeki yüklenebilir tetikleyicileri yöneten kısıtlamalara tabidir.
Bu kısıtlamaların yanı sıra, özellikle eklentilerdeki yüklenebilir tetikleyiciler için de çeşitli kısıtlamalar geçerlidir:
- Her eklenti, kullanıcı ve doküman başına her türden yalnızca bir tetikleyiciye sahip olabilir. Örneğin, belirli bir e-tabloda belirli bir kullanıcının yalnızca bir düzenleme tetikleyicisi olabilir. Ancak aynı e-tabloda form gönderme tetikleyicisi veya zamana dayalı tetikleyici de olabilir. Aynı e-tabloya erişimi olan farklı bir kullanıcının kendi ayrı tetikleyici grubu olabilir.
- Eklentiler yalnızca eklentinin kullanıldığı dosya için tetikleyici oluşturabilir. Örneğin, A adlı Google Dokümanı'nda kullanılan bir eklenti, B adlı Google Dokümanı'nın ne zaman açıldığını izlemek için tetikleyici oluşturamaz.
- Zamana dayalı tetikleyiciler saatte bir defadan daha sık çalıştırılamaz.
- Yüklenebilir bir tetikleyici tarafından çalıştırılan kod bir istisna oluşturduğunda eklentiler kullanıcıya otomatik olarak e-posta göndermez. Geliştirici, hata durumlarını kontrol etmek ve sorunsuz bir şekilde ele almakla yükümlüdür.
- Eklenti tetikleyicileri aşağıdaki durumlarda etkinleşmeyi durdurur:
- Eklenti kullanıcı tarafından kaldırılırsa
- Eklenti bir dokümanda devre dışı bırakılırsa (yeniden etkinleştirilirse tetikleyici tekrar çalışır) veya
- Geliştirici, eklentinin yayınını kaldırırsa veya eklenti mağazasına bozuk bir sürüm gönderirse
- Eklenti tetikleyici işlevleri, yetkisiz bir hizmeti kullanan koda ulaşana kadar yürütülür ve bu noktada durur. Bu yalnızca eklenti yayınlandıysa geçerlidir. Komut dosyasının herhangi bir bölümünün yetkilendirilmesi gerekiyorsa normal bir Apps Komut Dosyası projesinde veya yayınlanmamış bir eklentideki aynı tetikleyici hiç çalışmaz.
- Yüklenebilir tetikleyiciler, Apps Komut Dosyası tetikleyici kota sınırlarına tabidir.
Dokümanlar
Formlar*
E-Tablolar
Slaytlar