Basit Tetikleyiciler

Tetikleyiciler, belirli bir etkinlik veya olay gerçekleştiğinde Apps Komut Dosyası'nın bu tür işlemler yapılır. Basit tetikleyiciler, Apps Komut Dosyası'nda yerleşik olarak bulunan onOpen(e) işlevi gibi ayrılmış işlevlerin sayısı Bu işlem, kullanıcı bir Google Dokümanlar, E-Tablolar, Slaytlar veya Formlar dosyasını açtığında yürütülür. Yüklenebilir tetikleyiciler daha fazla özellik sunar özellikleri basit tetikleyicilere göre daha önemlidir, ancak kullanılmadan önce etkinleştirilmelidir. Her ikisi için her tetikleyici türü için Apps Komut Dosyası, tetiklenen işlevi etkinlik nesnesi olayın gerçekleştiği bağlam hakkında.

Başlarken

Basit bir tetikleyici kullanmak için bu tetikleyicilerden birini kullanan bir işlev oluşturmanız yeterlidir ayrılmış işlev adları:

  • onOpen(e), kullanıcı bir e-tablo, doküman, sunu veya kullanıcının düzenleme iznine sahip olduğu formdur.
  • onInstall(e), kullanıcı bir Düzenleyici Eklentisi'ni Google Dokümanlar, E-Tablolar, Slaytlar veya Formlar.
  • onEdit(e), kullanıcı e-tablodaki bir değeri değiştirdiğinde çalıştırılır.
  • onSelectionChange(e), kullanıcı bir e-tablodaki seçimi değiştirdiğinde çalıştırılır.
  • doGet(e), kullanıcı bir web uygulamasını ziyaret ettiğinde çalışır veya program, web uygulamasına HTTP GET isteği gönderir.
  • doPost(e), bir program web uygulamasına HTTP POST isteği gönderdiğinde çalışır.

Yukarıdaki işlev adlarında bulunan e parametresi, event nesnesi: işlevini kullanın. Nesne, tetiklemesi gerekir, ancak bunun kullanılması isteğe bağlıdır.

Kısıtlamalar

Basit tetikleyiciler kullanıcıdan istemeden otomatik olarak etkinleştiği için yetkisi varsa bazı kısıtlamalara tabidir:

  • Komut dosyası bir Google'a bağlı olmalıdır Google E-Tablolar, Google Slaytlar, Google Dokümanlar veya bir eklentiyi bu uygulamaları kullanır.
  • Bir dosya salt okuma (görüntüleme veya yorum yapma) modunda açıldığında bu etiketler çalışmaz.
  • Komut dosyası yürütme ve API istekleri, tetikleyicilerin çalıştırılmasına neden olmaz. Örneğin, Range.setValue() aranıyor bir hücreyi düzenlemek e-tablonun onEdit tetikleyicisinin çalıştırılmasına neden olmaz.
  • Zorunlu kılınan hizmetlere erişemezler. yetkilendirme. Örneğin, basit bir tetikleyici e-posta gönderemez çünkü Gmail hizmeti yetkilendirme gerektirir ancak basit bir tetikleyici bir ifadeyi Anonim dil hizmeti.
  • Bağlı oldukları dosyayı değiştirebilirler ancak diğer dosyalara erişemezler çünkü bu, yetkilendirme gerektirir.
  • Mevcut kullanıcının kimliğini belirlemek mümkün olmayabilir, bağlı olarak karmaşık güvenlik kısıtlamaları mevcuttur.
  • 30 saniyeden uzun süre çalıştırılamazlar.
  • Bazı durumlarda, Düzenleyici Eklentileri, onOpen(e) dosyalarını çalıştırır. ve onEdit(e) basit tetikleyici, şu API'yi görebilirsiniz: komplikasyonları da beraberinde getiriyor. Daha fazla bilgi için eklenti yetkilendirme yaşam döngüsü rehberini inceleyin.
  • Basit tetikleyiciler Apps Komut Dosyası tetikleyicisine tabidir. kota sınırlarını kaldırın.

Bu kısıtlamalar doGet(e) veya doPost(e) için geçerli değildir.

onOpen(e)

onOpen(e) tetikleyicisi, kullanıcı bir e-tabloyu açtığında otomatik olarak çalışır. düzenleme iznine sahip oldukları doküman, sunu veya form olabilir. ( tetikleyici bir forma yanıt verirken çalışmıyor, yalnızca tıklayın.) Özel alan eklemek için en yaygın olarak onOpen(e) kullanılır menü öğelerini Google E-Tablolar, Slaytlar, Dokümanlar ya da Formlar'ı tıklayın.

triggers/triggers.gs
/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 * @see https://developers.google.com/apps-script/guides/triggers#onopene
 */
function onOpen(e) {
  // Add a custom menu to the spreadsheet.
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
      .createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addToUi();
}

onInstall(e)

onInstall(e) tetikleyicisi, kullanıcı bir uygulama yüklediğinde otomatik olarak çalışır. Düzenleyici Eklentisi'ni Google Dokümanlar, E-Tablolar, Slaytlar veya Formlar. Bir kullanıcı aşağıdaki işlemleri yaptığında tetikleyici çalışmaz: Google Etiket Yöneticisi'nden Google Workspace Marketplace web sitesi. Lütfen onInstall(e) adlı çocuğun yapabileceğiyle ilgili belirli kısıtlamalar vardır. Daha fazla bilgi Yetkilendirme. onInstall(e) işlevinin en yaygın kullanımı, onOpen(e) işlevini çağırarak ekleme yapmaktır özel menüler. Sonuçta bir eklenti yüklendiğinde dosya zaten açıktır, ve bu nedenle, dosya yeniden açılmadıkça onOpen(e) kendi başına çalışmaz.

triggers/triggers.gs
/**
 * The event handler triggered when installing the add-on.
 * @param {Event} e The onInstall event.
 * @see https://developers.google.com/apps-script/guides/triggers#oninstalle
 */
function onInstall(e) {
  onOpen(e);
}

onEdit(e)

onEdit(e) tetikleyicisi, kullanıcı herhangi bir e-tablolarda tutabilirsiniz. Çoğu onEdit(e) tetikleyici, event nesnesi'ni kullanın. Örneğin, aşağıdaki onEdit(e) işlevi, en son düzenlendiği zamanı kaydeder.

triggers/triggers.gs
/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 * @see https://developers.google.com/apps-script/guides/triggers#onedite
 */
function onEdit(e) {
  // Set a comment on the edited cell to indicate when it was changed.
  const range = e.range;
  range.setNote('Last modified: ' + new Date());
}

onSelectionChange(e)

onSelectionChange(e) tetikleyicisi, bir kullanıcı seçim yapabilirsiniz. Bu tetikleyiciyi etkinleştirmek için şunu yenilemeniz gerekir: elektronik tablo açılır.

Seçim kısa bir süre içinde birden çok hücre arasında geçiş yaparsa bazı seçimler Gecikmeyi azaltmak için değişiklik etkinlikleri atlanabilir. Örneğin, eğer çok sayıda Yalnızca ilk ve sonuncusu olmak üzere iki saniye içinde değişiklik yapıldığından 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 kırmızıya çevirebilirsiniz.

triggers/triggers.gs
/**
 * The event handler triggered when the selection changes in the spreadsheet.
 * @param {Event} e The onSelectionChange event.
 * @see https://developers.google.com/apps-script/guides/triggers#onselectionchangee
 */
function onSelectionChange(e) {
  // Set background to red if a single empty cell is selected.
  const range = e.range;
  if (range.getNumRows() === 1 &&
    range.getNumColumns() === 1 &&
    range.getCell(1, 1).getValue() === '') {
    range.setBackground('red');
  }
}

doGet(e) ve doPost(e)

doGet(e) tetikleyicisi, kullanıcı şurayı ziyaret ettiğinde otomatik olarak çalışır: web uygulaması veya bir program HTTP GET isteği gönderir bir web uygulamasına yükleyebilirsiniz. doPost(e), bir program şuraya bir HTTP POST isteği gönderdiğinde çalışır: web uygulaması. Bu tetikleyiciler, e-posta kampanyaları için web uygulamaları, HTML hizmeti, ve İçerik hizmeti. doGet(e) ve doPost(e) yukarıda belirtilen kısıtlamalara tabi değildir.

Kullanılabilir tetikleyici türleri

Basit tetikleyicilerle ilgili kısıtlamalar nedeniyle bu kısıtlamalar yüklenebilir bir tetikleyici işe yarayabilir. Aşağıdaki tabloda, ne tür tetikleyicilerin kullanabilirsiniz. Örneğin, Google E-Tablolar, Slaytlar, Formlar ve Dokümanlar'ın tümü basit ve açık tetikleyicileri destekler, ancak yalnızca E-Tablolar, Dokümanlar ve Formlar'ı destekler. Yüklenebilir açık tetikleyiciler.

Etkinlik Basit tetikleyiciler Yüklenebilir tetikleyiciler
E-Tablolar
Slaytlar
Formlar*
Dokümanlar

function onOpen(e)

E-Tablolar
Formlar*
Dokümanlar
Düzenle
E-Tablolar

function onEdit(e)

E-Tablolar
Seçim değişikliği
E-Tablolar

function onSelectionChange(e)

Yükle
E-Tablolar
Slaytlar
Formlar
Dokümanlar

function onInstall(e)

Değiştir
E-Tablolar
Form gönderme
E-Tablolar
Formlar
Zaman odaklı (saat)
E-Tablolar
Slaytlar
Formlar
Dokümanlar
Bağımsız
Get
Bağımsız

function doGet(e)

Gönderi
Bağımsız

function doPost(e)

* Google Formlar için açık etkinlik, kullanıcı bir formu yanıtlayacak şekilde gönderin, daha ziyade bir düzenleyici oluşturmak için formu açtığında.