טריגרים מאפשרים ל-Apps Script להריץ פונקציה באופן אוטומטי כשמתרחש אירוע מסוים, כמו פתיחת מסמך. טריגרים פשוטים הם קבוצה של פונקציות שמורות שמוטמעות ב-Apps Script, כמו הפונקציה onOpen(e)
, שמופעלת כשמשתמש פותח קובץ ב-Google Docs, Sheets, Slides או Forms.
טריגרים שניתן להתקין מציעים יותר יכולות מטריגרים פשוטים, אבל צריך להפעיל אותם לפני השימוש. בשני סוגי הטריגרים, Apps Script מעביר לפונקציה שהופעלה אובייקט אירוע שמכיל מידע על ההקשר שבו האירוע התרחש.
תחילת העבודה
כדי להשתמש בטריגר פשוט, פשוט יוצרים פונקציה שמשתמשת באחד משמות הפונקציות השמורים האלה:
-
onOpen(e)
פועל כשמשתמש פותח גיליון אלקטרוני, מסמך, מצגת או טופס שיש לו הרשאה לערוך. -
onInstall(e)
מופעל כשמשתמש מתקין תוסף של עורכי Google מתוך Google Docs, Sheets, Slides או Forms. -
onEdit(e)
פועל כשמשתמש משנה ערך בגיליון אלקטרוני. -
onSelectionChange(e)
מופעל כשמשתמש משנה את הבחירה בגיליון אלקטרוני. -
doGet(e)
פועל כשמשתמש מבקר באפליקציית אינטרנט או כשתוכנית שולחת בקשת HTTP GET
לאפליקציית אינטרנט. -
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)
מופעל באופן אוטומטי כשמשתמש מתקין תוסף של Editor מתוך 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 תומכים בטריגרים של פתיחה שאפשר להתקין.
אירוע | טריגרים פשוטים | טריגרים שאפשר להתקין |
---|---|---|
פתיחה |
![]() ![]() ![]() ![]()
|
![]() ![]() ![]() |
עריכה |
![]()
|
![]() |
שינוי הבחירה |
![]()
|
|
התקנה |
![]() ![]() ![]() ![]()
|
|
שינוי |
![]() |
|
שליחת טופס |
![]() ![]() |
|
Time-driven (clock) |
![]() ![]() ![]() ![]() ![]() |
|
קבל |
![]()
|
|
פוסט |
![]()
|
* אירוע הפתיחה של Google Forms לא מתרחש כשמשתמש פותח טופס כדי להשיב עליו, אלא כשעורך פותח את הטופס כדי לשנות אותו.