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

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

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

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

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

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

כשמשתמש נכנס לאפליקציה או לתוכנה שולח לאפליקציה בקשת HTTP GET, סקריפט של Apps מריץ את הפונקציה doGet(e). כשתוכנית שולחת לאפליקציה בקשת HTTP POST, הסקריפט של Apps מריץ את 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. לוחצים על פריסה.

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

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

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

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

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

הרשאות

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

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

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

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

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

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

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

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

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

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

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

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

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