אפליקציות אינטרנט

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

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

דרישות לאפליקציות אינטרנט

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

פרמטרים של בקשה

כשמשתמש מבקר באפליקציה או כשתוכנית שולחת לאפליקציה בקשת HTTP GET,‏ Apps Script מפעיל את הפונקציה doGet(e). כשתוכנית שולחת לאפליקציה בקשת HTTP POST, ‏ Apps Script מפעיל את doPost(e) במקום זאת. בשני המקרים, הארגומנט e מייצג פרמטר של אירוע שיכול להכיל מידע על פרמטרים של בקשות. בטבלה שלמטה מוצגת המבנה של אובייקט האירוע:

שדות
e.queryString

הערך של החלק של מחרוזת השאילתה בכתובת ה-URL, או null אם לא צוינה מחרוזת שאילתה

name=alice&n=1&n=2
e.parameter

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

{"name": "alice", "n": "1"}
e.parameters

אובייקט שדומה ל-e.parameter, אבל עם מערך של ערכים לכל מפתח

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

נתיב כתובת ה-URL אחרי /exec או /dev. לדוגמה, אם נתיב כתובת ה-URL מסתיים ב-/exec/hello, פרטי הנתיב הם hello.

e.contextPath לא בשימוש, תמיד מחרוזת ריקה.
e.contentLength

אורך גוף הבקשה עבור בקשות POST, או -1 עבור בקשות GET

332
e.postData.length

בדיוק כמו במלון e.contentLength

332
e.postData.type

סוג ה-MIME של גוף בקשת ה-POST

text/csv
e.postData.contents

טקסט התוכן של גוף ה-POST

Alice,21
e.postData.name

הערך תמיד יהיה postData

postData

לדוגמה, אפשר להעביר פרמטרים כמו username ו-age לכתובת URL כמו בדוגמה הבאה:

https://script.google.com/.../exec?username=jsmith&age=21

אחר כך תוכלו להציג את הפרמטרים כך:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

בדוגמה שלמעלה, הפקודה doGet(e) מחזירה את הפלט הבא:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

פריסת סקריפט כאפליקציית אינטרנט

כדי לפרוס סקריפט כאפליקציית אינטרנט, פועלים לפי השלבים הבאים:

  1. בפינה השמאלית העליונה של פרויקט הסקריפט, לוחצים על פריסה > פריסה חדשה.
  2. לצד 'בחירת סוג', לוחצים על 'הפעלת סוגי פריסה' > אפליקציית אינטרנט.
  3. מזינים את הפרטים של אפליקציית האינטרנט בשדות בקטע 'הגדרות פריסה'.
  4. לוחצים על פריסה.

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

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

בדיקת פריסה של אפליקציית אינטרנט

כדי לבדוק את הסקריפט כאפליקציית אינטרנט, מבצעים את השלבים הבאים:

  1. בפינה השמאלית העליונה של פרויקט הסקריפט, לוחצים על פריסה > בדיקת פריסות.
  2. לצד 'בחירת סוג', לוחצים על 'הפעלת סוגי פריסה' > אפליקציית אינטרנט.
  3. מתחת לכתובת ה-URL של אפליקציית האינטרנט, לוחצים על העתקה.
  4. מדביקים את כתובת ה-URL בדפדפן ובודקים את אפליקציית האינטרנט.

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

הרשאות

ההרשאות לאפליקציית אינטרנט משתנות בהתאם לאופן שבו בוחרים להפעיל את האפליקציה:

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

הטמעת אפליקציית אינטרנט ב-Google Sites

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

כדי להטמיע אפליקציית אינטרנט בדף Sites, פועלים לפי השלבים הבאים:

  1. פותחים את הדף ב-Sites שבו רוצים להוסיף את אפליקציית האינטרנט.
  2. בוחרים באפשרות הוספה > הטמעת כתובת URL.
  3. מדביקים את כתובת ה-URL של אפליקציית האינטרנט ולוחצים על הוספה.

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

אפליקציות אינטרנט והיסטוריית הדפדפן

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

‫Apps Script מספקת שני ממשקי JavaScript API אסינכרוניים בצד הלקוח כדי לעזור ביצירת אפליקציות אינטרנט שמקושרות להיסטוריית הדפדפן:

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

  • google.script.url מספק את האמצעים לאחזור פרמטרים של כתובת ה-URL וקטע של כתובת ה-URL של הדף הנוכחי, אם הם קיימים.

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