Class ScriptApp

ScriptApp

גישה לפרסום ולטריגרים של סקריפטים ולביצוע שינויים בהם. הכיתה הזו מאפשרת למשתמשים ליצור סקריפט מפעיל ומשפיע על הפרסום של הסקריפט כשירות.

מאפיינים

נכססוגתיאור
AuthModeAuthModeספירה שמזהה אילו קטגוריות של שירותים מורשים ב-Apps Script יכולה מופעל באמצעות פונקציה מופעלת.
AuthorizationStatusAuthorizationStatusספירה שמציינת את סטטוס ההרשאה של סקריפט.
EventTypeEventTypeספירה שמציינת את סוג האירוע שמופעל.
InstallationSourceInstallationSourceספירה שמציינת איך הסקריפט הותקן למשתמש כתוסף.
TriggerSourceTriggerSourceספירה שמציינת את המקור של האירוע שגורם לטריגר להפעיל.
WeekDayWeekdayספירה שמייצגת את ימי השבוע.

שיטות

שיטהסוג הערך המוחזרתיאור קצר
deleteTrigger(trigger)voidמסיר את הטריגר הנתון כך שלא יפעל יותר.
getAuthorizationInfo(authMode)AuthorizationInfoמקבל אובייקט שמשמש כדי לקבוע אם המשתמש צריך לאשר סקריפט זה כדי להשתמש בסקריפט אחד או ושירותים נוספים, ולספק את כתובת ה-URL של תיבת דו-שיח להרשאה.
getIdentityToken()Stringמקבל אסימון זהות של OpenID Connect עבור משתמש בפועל, אם ההיקף openid הוענק.
getInstallationSource()InstallationSourceמחזירה ערך enum שמציין איך הסקריפט הותקן כתוסף עבור המשתמש הנוכחי (לדוגמה, אם המשתמש התקין אותו באופן אישי דרך אתר האינטרנט של Chrome Google Store, או אם מנהל הדומיין התקין אותו לכל המשתמשים).
getOAuthToken()Stringמקבל גישה מסוג OAuth 2.0 לאסימון למשתמש האפקטיבי.
getProjectTriggers()Trigger[]קבלת כל הטריגרים שאפשר להתקין שמשויכים לפרויקט הנוכחי ולמשתמש הנוכחי.
getScriptId()Stringמקבל את המזהה הייחודי של פרויקט הסקריפט.
getService()Serviceקבלת אובייקט שמשמש לשליטה בפרסום הסקריפט כאפליקציית אינטרנט.
getUserTriggers(document)Trigger[]מקבל במסמך הנתון את כל הטריגרים שניתנים להתקנה בבעלות המשתמש הזה, עבור הסקריפט הזה או תוספת בלבד.
getUserTriggers(form)Trigger[]קבלת כל הטריגרים שניתנים להתקנה שבבעלות המשתמש הזה בטופס הנתון, עבור הסקריפט או התוסף הזה בלבד.
getUserTriggers(spreadsheet)Trigger[]מקבל את כל הטריגרים שניתנים להתקנה שבבעלות המשתמש הזה בגיליון האלקטרוני הנתון, עבור הסקריפט הזה או תוספת בלבד.
invalidateAuth()voidמבטל את ההרשאה שיש למשתמש בפועל להפעיל את הסקריפט הנוכחי.
newStateToken()StateTokenBuilderיוצרת כלי Builder לאסימון מצב שאפשר להשתמש בו ב-callback API (כמו תהליך OAuth).
newTrigger(functionName)TriggerBuilderמתחיל את התהליך של יצירת טריגר שניתן להתקנה, שכאשר הוא מופעל, הוא קורא לפונקציה נתונה.

מסמכי תיעוד מפורטים

deleteTrigger(trigger)

מסיר את הטריגר הנתון כך שלא יפעל יותר.

// Deletes all triggers in the current project.
var triggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

פרמטרים

שםסוגתיאור
triggerTriggerהטריגר למחיקה.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

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

var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
status = authInfo.getAuthorizationStatus();
url = authInfo.getAuthorizationUrl();

פרמטרים

שםסוגתיאור
authModeAuthModeמצב ההרשאה שעבורו מבוקשים פרטי הרשאה; באזור כמעט בכל המקרים, הערך של authMode אמור להיות ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL), כי אין מצב הרשאה אחר דורשת מהמשתמשים להעניק הרשאה

חזרה

AuthorizationInfo – אובייקט שיכול לספק מידע על סטטוס ההרשאה של המשתמש


getIdentityToken()

מקבל אסימון זהות של OpenID Connect עבור משתמש בפועל, אם ההיקף openid הוענק. ההיקף הזה לא כלול כברירת מחדל, וצריך להוסיף אותו כהיקף מפורש במניפסט. כדי לבקש אותו. צריך לכלול את ההיקפים https://www.googleapis.com/auth/userinfo.email או https://www.googleapis.com/auth/userinfo.profile כדי להחזיר עוד פרטי המשתמש באסימון.

האסימון המזהה המוחזר הוא אסימון אינטרנט מסוג JSON (JWT) מקודד צריך לפענח אותו כדי לחלץ ממנו מידע. בדוגמאות הבאות מראים איך מפענחים את הקוד את האסימון ומחלצים את מזהה פרופיל Google של המשתמש בפועל.

var idToken = ScriptApp.getIdentityToken();
var body = idToken.split('.')[1];
var decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
var payload = JSON.parse(decoded);
var profileId = payload.sub;
Logger.log('Profile ID: ' + profileId);
לעיון ב-OpenID Connect עבור הרשימה המלאה של השדות (הצהרות) שהוחזרו.

חזרה

String – אסימון הזהות (אם יש כזה), אחרת, null.


getInstallationSource()

מחזירה ערך enum שמציין איך הסקריפט הותקן כתוסף עבור המשתמש הנוכחי (לדוגמה, אם המשתמש התקין אותו באופן אישי דרך אתר האינטרנט של Chrome Google Store, או אם מנהל הדומיין התקין אותו לכל המשתמשים).

חזרה

InstallationSource – מקור ההתקנה.


getOAuthToken()

מקבל גישה מסוג OAuth 2.0 לאסימון למשתמש האפקטיבי. אם היקפי ההרשאות של OAuth של הסקריפט מספיקים כדי לתת הרשאה Google API אחר שלרוב דורש תהליך OAuth משלו (כמו Google Picker), סקריפטים יכולים לעקוף את בקשת הרשאה שנייה על ידי העברה של האסימון הזה במקום זאת. תוקף האסימון פג לאחר זמן מסוים ( כמה דקות לפחות). סקריפטים צריכים לטפל בכשלים בהרשאות ולקרוא לשיטה הזו לקבל אסימון חדש במקרה הצורך.

האסימון שמחזיר בשיטה הזו כולל רק היקפי הרשאות שדרושים לסקריפט כרגע. היקפי הרשאות שאושרו בעבר אבל כבר לא נמצאים בשימוש בסקריפט לא נכללים את האסימון שמוחזר. אם נדרשים היקפי הרשאות OAuth נוספים, מעבר לסקריפט עצמו דורשים אותן, אפשר לציין אותן קובץ מניפסט.

חזרה

String – ייצוג במחרוזת של אסימון OAuth 2.0.


getProjectTriggers()

קבלת כל הטריגרים שאפשר להתקין שמשויכים לפרויקט הנוכחי ולמשתמש הנוכחי.

Logger.log('Current project has ' + ScriptApp.getProjectTriggers().length + ' triggers.');

חזרה

Trigger[] – מערך של הטריגרים של המשתמש הנוכחי שמשויכים לפרויקט.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

מקבל את המזהה הייחודי של פרויקט הסקריפט. זוהי השיטה המועדפת לקבלת המזהה הייחודי לפרויקט הסקריפט, ולא ל-getProjectKey(). אפשר להשתמש בתעודה המזהה הזו בכל המקומות שבו סופק מפתח הפרויקט קודם לכן.

חזרה

String – המזהה של פרויקט הסקריפט.


getService()

קבלת אובייקט שמשמש לשליטה בפרסום הסקריפט כאפליקציית אינטרנט.

// Get the URL of the published web app.
var url = ScriptApp.getService().getUrl();

חזרה

Service – אובייקט שמשמש לתצפית ולשליטה בפרסום הסקריפט כאפליקציית אינטרנט.


getUserTriggers(document)

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

var doc = DocumentApp.getActiveDocument();
var triggers = ScriptApp.getUserTriggers(doc);
// Log the handler function for the first trigger in the array.
Logger.log(triggers[0].getHandlerFunction());

פרמטרים

שםסוגתיאור
documentDocumentקובץ Google Docs שעשוי להכיל טריגרים שאפשר להתקין.

חזרה

Trigger[] – מערך טריגרים שבבעלות המשתמש הזה במסמך הנתון.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

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

var form = FormApp.getActiveForm();
var triggers = ScriptApp.getUserTriggers(form);
// Log the trigger source for the first trigger in the array.
Logger.log(triggers[0].getTriggerSource());

פרמטרים

שםסוגתיאור
formFormקובץ Google Forms שעשוי להכיל טריגרים שניתנים להתקנה.

חזרה

Trigger[] – מערך של טריגרים שבבעלות המשתמש הזה בטופס הנתון.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

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

var ss = SpreadsheetApp.getActiveSpreadsheet();
var triggers = ScriptApp.getUserTriggers(ss);
// Log the event type for the first trigger in the array.
Logger.log(triggers[0].getEventType());

פרמטרים

שםסוגתיאור
spreadsheetSpreadsheetקובץ Google Sheets שעשוי להכיל טריגרים שניתנים להתקנה.

חזרה

Trigger[] – מערך טריגרים בבעלות המשתמש בגיליון האלקטרוני הנתון.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

מבטל את ההרשאה שיש למשתמש בפועל להפעיל את הסקריפט הנוכחי. רגיל ל- לבטל את כל ההרשאות לסקריפט הנוכחי. האפשרות הזאת שימושית במיוחד לפונקציות מתויגת כהרשאה חד-פעמית. מכיוון שאפשר לקרוא לפונקציות הרשאה באמצעות דוגמה אחת להרצה הראשונה לאחר שהסקריפט קיבל הרשאה, אם ברצונך לבצע פעולה לאחר מכן, עליכם לבטל כל הרשאה שיש לסקריפט, כדי שהמשתמש יוכל לראות בתיבת הדו-שיח למתן הרשאה.

ScriptApp.invalidateAuth();

קליעות

Error – אם ביטול התוקף נכשל


newStateToken()

יוצרת כלי Builder לאסימון מצב שאפשר להשתמש בו ב-callback API (כמו תהליך OAuth).

// Generate a callback URL, given the name of a callback function. The script does not need to
// be published as a web app; the /usercallback URL suffix replaces /edit in any script's URL.
function getCallbackURL(callbackFunction) {
  // IMPORTANT: Replace string below with the URL from your script, minus the /edit at the end.
  var scriptUrl = 'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  var urlSuffix = '/usercallback?state=';
  var stateToken = ScriptApp.newStateToken()
      .withMethod(callbackFunction)
      .withTimeout(120)
      .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

ברוב תהליכי OAuth2, האסימון state מועבר לנקודת הקצה של ההרשאה ישירות (לא כחלק מכתובת ה-URL לקריאה חוזרת), ונקודת הקצה של ההרשאה מעבירה אותה חלק מכתובת ה-URL לקריאה חוזרת (callback).

לדוגמה:

  • הסקריפט מפנה את המשתמש לכתובת URL לאישור OAuth2: https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
  • המשתמש לוחץ על הרשאה ודף ההרשאה של OAuth2 מפנה את המשתמש חזרה אל https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
  • ההפניה האוטומטית שלמעלה (חזרה אל http://script.google.com/...), גורמת לדפדפן בקשה ל-/usercallback, שמפעילה את השיטה שצוינה ב-StateTokenBuilder.withMethod(method).

חזרה

StateTokenBuilder – אובייקט שמשמש להמשך תהליך בניית אסימוני המצב.


newTrigger(functionName)

מתחיל את התהליך של יצירת טריגר שניתן להתקנה, שכאשר הוא מופעל, הוא קורא לפונקציה נתונה.

// Creates an edit trigger for a spreadsheet identified by ID.
ScriptApp.newTrigger('myFunction')
    .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')
    .onEdit()
    .create();

פרמטרים

שםסוגתיאור
functionNameStringהפונקציה שאליה צריך להפעיל כשהטריגר מופעל. אפשר להשתמש בפונקציות מ: של ספריות כמו Library.libFunction1.

חזרה

TriggerBuilder – אובייקט שמשמש להמשך תהליך בניית הטריגרים.

אישור

סקריפטים שמשתמשים בשיטה הזו מחייבים הרשאה עם אחד או יותר מהיקפי ההרשאות הבאים:

  • https://www.googleapis.com/auth/script.scriptapp

שיטות שהוצאו משימוש