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

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.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

גישה לכיתות ילדים

כל שירות כולל כיתת צאצא אחת או יותר שאי אפשר לגשת אליה מ: ברמה העליונה שאובייקט גלובלי יכול. לא ניתן להשתמש במילת המפתח new כדי ליצור את הסיווגים האלה, כמו שאפשר לעשות באמצעות מחלקות JavaScript רגילות כמו Date; אפשר לגשת לכיתת צאצא רק באמצעות קריאה לשיטה שמחזירה את הכיתה. אם אתם לא בטוחים איך לגשת למחלקה מסוימת, היכנסו לדף הבסיס של השירות מסמכי עזר ומחפשים שיטה שתחזיר את הכיתה הרצויה.

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

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