שירותי Google מובנים

Google Apps Script מספק יותר מ-30 שירותים מובנים לאינטראקציה עם נתוני משתמשים, מערכות אחרות של Google ומערכות חיצוניות. השירותים האלה מוצגים כאובייקטים גלובליים, בדומה לאובייקט הסטנדרטי Math של JavaScript. לדוגמה, בדיוק כמו ש-Math מציע שיטות כמו random() קבועים כמו PI, שירות גיליונות אלקטרוניים מציע שיטות כמו openById(id), סיווגים (אובייקטים של ילדים) כמו Range, ו-enums כמו DataValidationCriteria.

מסמכי העזרה של השירותים ששולטים במוצריGoogle Workspace נמצאים בקטעGoogle Workspace Services (שירותיGoogle Workspace ) שבכותרת Reference (חומר עזר) בסרגל הצד של האתר הזה. שירותי כלי עזר (לפעולות כמו יצירת ממשקי משתמש, ניתוח 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. לדוגמה:

  • אם מקלידים את השם המלא של אובייקט גלובלי או בוחרים אובייקט מהשלמה אוטומטית, ואז מקלידים . (נקודה), יוצגו כל השיטות והמשתנים המפורטים של הכיתה הזו.
  • אם תקליד כמה תווים, תוכל לראות שהכל הצעות שמתחילות בתווים האלה.

הבנת אובייקטים גלובליים

כל שירות מספק אובייקט גלובלי אחד לפחות (ברמה העליונה). לדוגמה, הגישה לשירות Gmail מתבצעת רק דרך האובייקט GmailApp. בחלק מהשירותים יש כמה אובייקטים גלובליים. לדוגמה, השירות הבסיסי כולל ארבעה אובייקטים גלובליים: Browser,‏ Logger,‏ MimeType ו-Session.

שיטות קריאה

האובייקטים הגלובליים של כמעט כל השירותים המובנים או השירותים המתקדמים כוללים שיטות שמחזירות נתונים או כיתה של Apps Script. סקריפטים מבצעים קריאות ל-method בפורמט הזה:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

לדוגמה, סקריפט יכול לשלוח אימייל באמצעות קריאה sendEmail(recipient, subject, body) ה-method של שירות Gmail, כמו:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

אם שיטה מחזירה עוד כיתה של Apps Script, אפשר לשרשר קריאות לשיטות בשורה אחת. (סוגי ההחזרות מוצגים גם בהשלמה האוטומטית וגם בהפניה לשיטה 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. אפשר לגשת לכיתה צאצאית רק על ידי קריאה לשיטה שמחזירה אותה. אם אתם לא בטוחים איך לגשת למחלקה מסוימת, היכנסו לדף הבסיס של השירות מסמכי עזר ומחפשים שיטה שתחזיר את הכיתה הרצויה.

התמודדות עם ממשקים

מספר שירותים כוללים סיווגים מיוחדים המתויגים כ-"interfaces" (ממשקים). במסמכי התיעוד. אלה מחלקות כלליות שמשמשות כסוגי החזרה של שיטות שלא ניתן לקבוע מראש את הסוג המדויק שלהן. לדוגמה, השיטה Document serviceBody.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);