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

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

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

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

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

פרמטרים של בקשות

כשמשתמש נכנס לאפליקציה או שתוכנית שולחת לאפליקציה בקשת HTTP‏ GET, הפונקציה doGet(e) מופעלת ב-Apps Script. כשתוכנית שולחת לאפליקציה בקשת 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. פותחים את הדף 'אתרים' שבו רוצים להוסיף את אפליקציית האינטרנט.
  2. בוחרים באפשרות הוספה > הטמעת כתובת URL.
  3. מדביקים את כתובת ה-URL של אפליקציית האינטרנט ולוחצים על הוספה.

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

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

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

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

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

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

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