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

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

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

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

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

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

כשמשתמש מבקר באפליקציה או תוכנה שולחת לאפליקציה בקשת GET HTTP, הסקריפט של Apps מריץ את הפונקציה doGet(e). כשתוכנה שולחת לאפליקציה בקשת POST HTTP, הסקריפט של 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. ליד Select type (בחירת סוג), לוחצים על EnableDeploy types (הפעלת סוגי פריסה) > Web app (אפליקציית אינטרנט).
  3. מזינים את המידע על אפליקציית האינטרנט בשדות שבקטע Deployment configuration (הגדרת הפריסה).
  4. לוחצים על Deploy (פריסה).

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

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

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

  1. בפינה הימנית העליונה של פרויקט הסקריפט, לוחצים על Deploy > Test Deploys (פריסה > בדיקת פריסות).
  2. ליד Select type (בחירת סוג), לוחצים על EnableDeploy types (הפעלת סוגי פריסה) > Web app (אפליקציית אינטרנט).
  3. מתחת לכתובת ה-URL של אפליקציית האינטרנט, לוחצים על העתקה.
  4. מדביקים את כתובת ה-URL בדפדפן ובודקים את אפליקציית האינטרנט.

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

הרשאות

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

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

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

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

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

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

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

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

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

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

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

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

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