Google Apps Script מספק יותר מ-30 שירותים מובנים לאינטראקציה עם
נתוני משתמשים, מערכות אחרות של Google ומערכות חיצוניות. השירותים האלה
סופקו כאובייקטים גלובליים הדומה לתקן של JavaScript
Math
לאובייקט. לדוגמה, בדיוק כמו ש-Math
מציע שיטות כמו random()
קבועים כמו PI
,
שירות גיליונות אלקטרוניים מציע שיטות כמו
openById(id)
,
סיווגים (אובייקטים של ילדים) כמו
Range
, ו-enums כמו
DataValidationCriteria
.
מאמרי העזרה לשירותים ששולטים Google Workspace המוצרים נאספים ב "Google Workspace שירותים" בקטע הפניה בסרגל הצד של האתר הזה. שירותי תשתיות (לדברים) כמו יצירת ממשקי משתמש, ניתוח XML או כתיבת נתוני יומנים) נאספים בקטע 'שירותי סקריפטים' .
תכונות JavaScript מודרניות
ב-Apps Script יש תמיכה בשני זמני ריצה של JavaScript: זמן ריצה של V8 וגרסה ישנה יותר שמופעלת על ידי Mozilla מפענח JavaScript ל-Rhino
זמן הריצה של V8 תומך בתכונות מודרניות התחביר והתכונות של ECMAScript. זמן הריצה של Rhino מבוסס על JavaScript 1.6 הרגיל, עם כמה תכונות 1.7 וגם 1.8 אפשר לבחור באופן חופשי את סביבת זמן הריצה לשימוש בסקריפט, אבל מומלץ מאוד להשתמש בסביבת זמן הריצה של V8.
כל סביבת זמן ריצה תומכת במחלקות ובאובייקטים של JavaScript שזמינים
בנוסף לקובץ המובנה
ושירותי Google מתקדמים. שלך
סקריפטים יכולים להשתמש באובייקטים נפוצים כמו
Array
Date
,
RegExp
,
וכן הלאה,
וגם
Math
וגם
Object
של אובייקטים גלובליים.
שימוש בהשלמה אוטומטית
עורך הסקריפטים מספק 'מסייע תוכן' התכונה נקראת בדרך כלל "autocomplete", שחושף את האובייקטים הגלובליים וגם את השיטות והטיפוסים בני מנייה (enum) שהם תקפים בהקשר הנוכחי של הסקריפט. מופיעות הצעות להשלמה אוטומטית באופן אוטומטי בכל פעם שמקלידים נקודה אחרי אובייקט גלובלי, enum או method שמחזירה מחלקה של Apps Script. לדוגמה:
- אם מקלידים את השם המלא של אובייקט גלובלי או בוחרים אובייקט מההשלמה האוטומטית,
לאחר מכן מקלידים
.
(נקודה), יוצגו כל השיטות וה-enums למחלקה הזו. - אם תקליד כמה תווים, תוכל לראות שהכל הצעות שמתחילות בתווים האלה.
הבנת אובייקטים גלובליים
כל שירות מספק לפחות אובייקט גלובלי (ברמה עליונה) אחד; לדוגמה,
ניתן לגשת אל שירות Gmail אך ורק מ-
את האובייקט GmailApp
. שירותים מסוימים
לספק אובייקטים גלובליים מרובים; לדוגמה,
שירות בסיסי כולל ארבעה אובייקטים גלובליים:
Browser
,
Logger
,
MimeType
וגם
Session
.
שיטות שיחה
האובייקטים הגלובליים של כמעט כל האובייקטים שירותים מתקדמים כוללים שיטות להחזיר נתונים או מחלקה של Apps Script. סקריפטים מבצעים קריאות לשיטה בפורמט הזה:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
לדוגמה, סקריפט יכול לשלוח אימייל באמצעות קריאה
sendEmail(recipient, subject, body)
ה-method של שירות Gmail, כמו:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
אם שיטה מחזירה מחלקה אחרת של Apps Script, אפשר לשרשר קריאות ל-methods במחלקה
השורה הזו. (סוגי ההחזרות מוצגים גם בהשלמה האוטומטית וגם בהפניה לשיטה
documentation.) לדוגמה, השיטה
DocumentApp.create()
מחזירה Document
; כלומר,
שני קטעי הקוד הבאים מקבילים:
var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');
// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
.appendParagraph('New paragraph.');
גישה לכיתות ילדים
כל שירות כולל כיתת צאצא אחת או יותר שאי אפשר לגשת אליה מ:
ברמה העליונה שאובייקט גלובלי יכול. לא ניתן להשתמש במילת המפתח new
כדי
ליצור את הסיווגים האלה, כמו שאפשר לעשות באמצעות מחלקות JavaScript רגילות כמו
Date
;
אפשר לגשת לכיתת צאצא רק באמצעות קריאה לשיטה שמחזירה את הכיתה. אם אתם
לא בטוחים איך לגשת למחלקה מסוימת, היכנסו לדף הבסיס של השירות
מסמכי עזר ולחפש שיטה שתחזיר את הכיתה הרצויה.
התמודדות עם ממשקים
מספר שירותים כוללים סיווגים מיוחדים, המסווגים כ"ממשקים".
במסמכי התיעוד. אלה מחלקות גנריות שמשמשות כסוגי החזרה
לשיטות שלא יכולות לקבוע מראש את הסוג המדויק. לדוגמה,
השיטה שירות מסמכים
Body.getChild(childIndex)
מחזירה אובייקט Element
כללי.
Element
הוא ממשק שמייצג מחלקה אחרת, ייתכן
Paragraph
או
Table
. אובייקטים בממשק הם לעיתים רחוקות
שימושי בפני עצמו, במקום זאת, בדרך כלל כדאי לקרוא לשיטה כמו
Element.asParagraph()
כדי להמיר את האובייקט בחזרה למחלקה מדויקת.
עבודה עם טיפוסים בני מנייה (enum)
רוב השירותים כוללים כמה טיפוסים בני מנייה (enum) של ערכים בעלי שם. עבור
לדוגמה, שירות Drive משתמש בטיפוסים בני מנייה (enum)
Access
וגם
Permission
כדי לקבוע אילו משתמשים
יכולים לגשת לקובץ או לתיקייה. כמעט בכל המקרים יש לכם גישה ל-enums האלה
מהאובייקט הגלובלי. לדוגמה, קריאה ל-method
Folder.setSharing(accessType, permissionType)
נראה כך:
// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);