טריגרים מאפשרים ל-Apps Script להריץ פונקציה באופן אוטומטי כשמתרחש אירוע מסוים, כמו פתיחת מסמך. טריגרים פשוטים הם קבוצה של פונקציות שמורות שמובנות ב-Apps Script, כמו הפונקציה onOpen(e)
, שמופעלת כשמשתמש פותח קובץ של Google Docs, Sheets, Slides או Forms.
טריגרים שניתנים להתקנה מציעים יותר יכולות מאשר טריגרים פשוטים, אבל צריך להפעיל אותם לפני השימוש. בשני סוגי הטריגרים, Apps Script מעביר לפונקציה המופעלת אובייקט אירוע שמכיל מידע על ההקשר שבו התרחש האירוע.
איך מתחילים
על מנת להשתמש בטריגר פשוט, יוצרים פונקציה שמשתמשת באחד מהשמות השמורים הבאים:
onOpen(e)
פועל כשמשתמש פותח גיליון אלקטרוני, מסמך, מצגת או טופס שלמשתמש יש הרשאה לערוך אותם.onInstall(e)
פועל כשמשתמש מתקין תוסף עריכה מתוך Google Docs , Sheets , Slides או Forms.- הפונקציה
onEdit(e)
פועלת כשמשתמש משנה ערך בגיליון אלקטרוני. - הפקודה
onSelectionChange(e)
פועלת כשמשתמש משנה את הבחירה בגיליון אלקטרוני. - הפקודה
doGet(e)
פועלת כשמשתמש נכנס לאפליקציית אינטרנט או שתוכנה שולחת בקשת HTTPGET
לאפליקציית אינטרנט. - הרכיב
doPost(e)
פועל כשתוכנית שולחת בקשת HTTPPOST
לאפליקציית אינטרנט.
הפרמטר e
בשמות הפונקציות שלמעלה הוא אובייקט אירוע שמועבר לפונקציה. האובייקט מכיל מידע על ההקשר שגרם להפעלת הטריגר, אבל השימוש בו הוא אופציונלי.
הגבלות
מאחר שטריגרים פשוטים מופעלים באופן אוטומטי, בלי לבקש הרשאה מהמשתמש, הם כפופים למספר הגבלות:
- הסקריפט צריך להיות מקושר לקובץ של Google Sheets, Slides, Docs או Forms, או להיות תוסף שמרחיב את אחת מהאפליקציות האלה.
- הן לא פועלות אם קובץ נפתח במצב קריאה-בלבד (הצגה או תגובה).
- הרצת סקריפטים ובקשות API לא גורמים להרצת טריגרים. לדוגמה, קריאה ל-
Range.setValue()
לעריכת תא לא מפעילה את הטריגרonEdit
של הגיליון האלקטרוני. - הם לא יכולים לגשת לשירותים שדורשים הרשאה. לדוגמה, טריגר פשוט לא יכול לשלוח אימייל כי שירות Gmail מחייב הרשאה, אבל טריגר פשוט יכול לתרגם ביטוי באמצעות שירות השפה, שהוא אנונימי.
- הם יכולים לשנות את הקובץ שאליו הם מחויבים, אבל לא יכולים לגשת לקבצים אחרים כי בשביל לעשות זאת תידרש הרשאה.
- יכול להיות שהם יוכלו לזהות את המשתמש הנוכחי, אבל לא בהכרח, בהתאם לסדרה מורכבות של הגבלות אבטחה.
- הן לא יכולות לפעול יותר מ-30 שניות.
- בנסיבות מסוימות, תוספים ל-Editor מריצים את
onOpen(e)
ואתonEdit(e)
הטריגרים הפשוטים במצב ללא הרשאה, שיש בו כמה סיבוכים נוספים. למידע נוסף, קראו את המדריך למחזור החיים של הרשאות לתוספים. - טריגרים פשוטים כפופים למגבלות מכסות של טריגר של Apps Script.
ההגבלות האלה לא חלות על doGet(e)
או על doPost(e)
.
onOpen(e)
הטריגר onOpen(e)
פועל באופן אוטומטי כשמשתמש פותח גיליון אלקטרוני, מסמך, מצגת או טופס שיש לו הרשאת עריכה. (הטריגר לא פועל כשמגיבים לטופס, אלא רק כשפותחים את הטופס כדי לערוך אותו). בדרך כלל משתמשים ב-onOpen(e)
כדי להוסיף פריטים בתפריט בהתאמה אישית ל-Google Sheets, ל-Slides, ל-Docs או ל-Forms.
onInstall(e)
הטריגר onInstall(e)
פועל באופן אוטומטי כשמשתמש מתקין תוסף עריכה מתוך Google Docs , Sheets , Slides או Forms. הטריגר לא יפעל כשמשתמש יתקין את התוסף מהאתר של Google Workspace Marketplace. שימו לב שיש הגבלות מסוימות על מה שאפשר לעשות עם onInstall(e)
. אפשר לקרוא מידע נוסף על הרשאה.
השימוש הנפוץ ביותר ב-onInstall(e)
הוא פשוט לקרוא ל-onOpen(e)
כדי להוסיף תפריטים מותאמים אישית. אחרי שמתקינים תוסף, הקובץ כבר פתוח, ולכן onOpen(e)
לא פועל בעצמו אלא אם הקובץ נפתח מחדש.
onEdit(e)
הטריגר onEdit(e)
פועל באופן אוטומטי כשמשתמש משנה את הערך של תא כלשהו בגיליון האלקטרוני. רוב הטריגרים של onEdit(e)
משתמשים במידע שבאובייקט האירוע כדי להגיב בהתאם.
לדוגמה, הפונקציה onEdit(e)
שלמטה מגדירה בתא תגובה שמתעדת את הפעם האחרונה שבה היא נערכה.
onSelectionChange(e)
הטריגר onSelectionChange(e)
פועל באופן אוטומטי כשמשתמש משנה את הבחירה בגיליון אלקטרוני. כדי להפעיל את הטריגר הזה, צריך לרענן את הגיליון האלקטרוני אחרי שמוסיפים את הטריגר ובכל פעם שהגיליון האלקטרוני נפתח.
אם הבחירה עוברת בין מספר תאים בפרק זמן קצר, ייתכן שהמערכת תדלג על חלק מאירועי שינוי הבחירה כדי לצמצם את זמן האחזור. לדוגמה, אם מבצעים הרבה שינויים בבחירה תוך שתי שניות, רק השינויים הראשונים והאחרונים יפעילו את הטריגר onSelectionChange(e)
.
בדוגמה הבאה, אם בוחרים תא ריק, הפונקציה onSelectionChange(e)
מגדירה את רקע התא לאדום.
doGet(e)
וגם doPost(e)
הטריגר doGet(e)
פועל באופן אוטומטי כשמשתמש מבקר באפליקציית אינטרנט או בתוכנה ששולחים בקשת HTTP מסוג GET
לאפליקציית אינטרנט. doPost(e)
פועל כשהתוכנית שולחת בקשת HTTP POST
לאפליקציית אינטרנט. הטריגרים האלה מוצגים בצורה מפורטת יותר במדריכים לאפליקציות אינטרנט, לשירות HTML
ולשירות תוכן. שימו לב: doGet(e)
וגם doPost(e)
לא כפופים להגבלות שצוינו למעלה.
הסוגים הזמינים של טריגרים
אם ההגבלות על טריגרים פשוטים מונעות מהם לענות על הצרכים שלכם, יכול להיות שטריגר להתקנה יפעל במקום זאת. הטבלה הבאה מסכמת אילו סוגי טריגרים זמינים לכל סוג של אירוע. לדוגמה, Google Sheets, Slides, Forms ו-Docs תומכים בטריגרים פתוחים פשוטים, אבל רק Sheets, Docs ו-Forms תומכים בטריגרים פתוחים שניתן להתקין.
אירוע | טריגרים פשוטים | טריגרים שניתנים להתקנה |
---|---|---|
פתיחה |
|
|
עריכה |
|
|
שינוי הבחירה |
|
|
התקנה |
|
|
שינוי |
|
|
טופס נשלח |
|
|
מבוסס-זמן (שעון) |
|
|
הורדה |
|
|
פוסט |
|
* האירוע הפתוח ב-Google Forms לא מתרחש כשמשתמש פותח טופס כדי להגיב, אלא כשעורך פותח את הטופס כדי לשנות אותו.