אם אתם מפתחים ממשק משתמש לסקריפט, תוכלו לפרסם אותו כאפליקציית אינטרנט. לדוגמה, סקריפט שמאפשר למשתמשים לקבוע פגישות עם חברים בצוות התמיכה, מומלץ להציג כאפליקציית אינטרנט כך שהמשתמשים יוכלו לגשת אליו ישירות מהדפדפנים שלהם.
אפשר להפוך סקריפטים עצמאיים וגם סקריפטים שמקושרים ל Google Workspace אפליקציות לאפליקציות אינטרנט, כל עוד הם עומדים בדרישות הבאות.
דרישות לגבי אפליקציות אינטרנט
ניתן לפרסם סקריפט כאפליקציית אינטרנט אם הוא עומד בדרישות הבאות:
- היא מכילה פונקציית
doGet(e)
אוdoPost(e)
. - הפונקציה מחזירה אובייקט service HTML
HtmlOutput
או אובייקט שירות תוכןTextOutput
.
פרמטרים של בקשה
כשמשתמש מבקר באפליקציה או תוכנה שולחת לאפליקציה בקשת GET
HTTP, הסקריפט של Apps מריץ את הפונקציה doGet(e)
. כשתוכנה שולחת לאפליקציה בקשת POST
HTTP, הסקריפט של Apps מריץ את doPost(e)
במקום זאת. בשני המקרים, הארגומנט e
מייצג פרמטר אירוע שיכול להכיל מידע על כל פרמטר של הבקשה. המבנה של אובייקט האירוע מוצג בטבלה הבאה:
שדות | |
---|---|
e.queryString |
הערך של החלק של מחרוזת השאילתה בכתובת ה-URL, או name=alice&n=1&n=2 |
e.parameter |
אובייקט של צמדי מפתח/ערך שתואמים לפרמטרים של הבקשה. רק עבור פרמטרים שיש להם כמה ערכים, מוחזר הערך הראשון. {"name": "alice", "n": "1"} |
e.parameters |
אובייקט שדומה ל- {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
נתיב כתובת ה-URL אחרי |
e.contextPath |
לא בשימוש, תמיד המחרוזת הריקה. |
e.contentLength |
אורך גוף הבקשה עבור בקשות POST, או 332 |
e.postData.length |
בדיוק כמו במלון 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
}
פריסת סקריפט כאפליקציית אינטרנט
כדי לפרוס סקריפט כאפליקציית אינטרנט, יש לבצע את השלבים הבאים:
- בפינה השמאלית העליונה של פרויקט הסקריפט, לוחצים על פריסה > פריסה חדשה.
- ליד Select type (בחירת סוג), לוחצים על EnableDeploy types (הפעלת סוגי פריסה) > Web app (אפליקציית אינטרנט).
- מזינים את המידע על אפליקציית האינטרנט בשדות שבקטע Deployment configuration (הגדרת הפריסה).
- לוחצים על Deploy (פריסה).
אם הענקתם להם גישה, אפשר לשתף את כתובת ה-URL של אפליקציית האינטרנט עם אנשים שרוצים להשתמש בה.
בדיקה של פריסה של אפליקציית אינטרנט
כדי לבדוק את הסקריפט כאפליקציית אינטרנט, פועלים לפי השלבים הבאים:
- בפינה הימנית העליונה של פרויקט הסקריפט, לוחצים על Deploy > Test Deploys (פריסה > בדיקת פריסות).
- ליד Select type (בחירת סוג), לוחצים על EnableDeploy types (הפעלת סוגי פריסה) > Web app (אפליקציית אינטרנט).
- מתחת לכתובת ה-URL של אפליקציית האינטרנט, לוחצים על העתקה.
מדביקים את כתובת ה-URL בדפדפן ובודקים את אפליקציית האינטרנט.
כתובת ה-URL מסתיימת ב-
/dev
ורק משתמשים שיש להם גישת עריכה לסקריפט יכולים לגשת אליה. במופע הזה של האפליקציה תמיד פועל הקוד האחרון שנשמר, והוא מיועד רק לבדיקה במהלך הפיתוח.
הרשאות
ההרשאות לאפליקציית אינטרנט משתנות בהתאם לאופן שבו תבחרו להפעיל את האפליקציה:
- ביצוע האפליקציה בתור אני – במקרה כזה, הסקריפט תמיד מופעל כפי שאתם, הבעלים של הסקריפט, ללא קשר למי ניגש לאפליקציית האינטרנט.
- הפעלת האפליקציה כמשתמש שניגשים לאפליקציית האינטרנט – במקרה כזה, הסקריפט פועל בזהות של המשתמש הפעיל באמצעות אפליקציית האינטרנט. הגישה להרשאה הזו גורמת לאפליקציית האינטרנט להציג את כתובת האימייל של בעלי הסקריפט כשהמשתמש מאשר גישה.
הטמעה של אפליקציית האינטרנט ב-Google Sites
כדי להטמיע אפליקציית אינטרנט ב-Google Sites, צריך קודם לפרוס אותה. נדרשת גם Deployed URL בתיבת הדו-שיח Deploy
.
כדי להטמיע אפליקציית אינטרנט בדף אתרים, מבצעים את השלבים הבאים:
- פותחים את הדף 'אתרים' שבו רוצים להוסיף את אפליקציית האינטרנט.
- בוחרים באפשרות הוספה > הטמעה של כתובת URL.
- מדביקים את כתובת ה-URL של אפליקציית האינטרנט ולוחצים על הוספה.
אפליקציית האינטרנט תופיע במסגרת בתצוגה המקדימה של הדף. כשמפרסמים את הדף, ייתכן שהצופים באתר יצטרכו לאשר את אפליקציית האינטרנט כדי להפעיל אותה כרגיל. אפליקציות אינטרנט לא מורשות מציגות למשתמש בקשות הרשאה.
אפליקציות אינטרנט והיסטוריית הדפדפן
יכול להיות שאפליקציית אינטרנט של Apps Script תדמה אפליקציה מרובת דפים, או אפליקציה עם ממשק משתמש דינמי הנשלט באמצעות פרמטרים של כתובות אתרים. לשם כך, תוכלו להגדיר אובייקט מצב שמייצג את ממשק המשתמש או הדף של האפליקציה, ולהעביר את המצב להיסטוריית הדפדפן בזמן שהמשתמש מנווט באפליקציה. תוכלו גם להאזין לאירועי ההיסטוריה כדי שאפליקציית האינטרנט תציג את ממשק המשתמש הנכון כשהמשתמש מנווט קדימה ואחורה באמצעות לחצני הדפדפן. שליחת שאילתות על הפרמטרים של כתובת ה-URL בזמן הטעינה מאפשרת לאפליקציה ליצור ממשק משתמש באופן דינמי על סמך הפרמטרים האלה, וכך לאפשר למשתמש להפעיל את האפליקציה במצב מסוים.
Apps Script מספק שני ממשקי API אסינכרוניים של JavaScript בצד הלקוח כדי לעזור ביצירת אפליקציות אינטרנט שמקושרות להיסטוריית הדפדפן:
google.script.history
מספק שיטות לאפשר תגובה דינמית לשינויים בהיסטוריית הדפדפן. הפעולות האלה כוללות: דחיפת מצבים (אובייקטים פשוטים שאפשר להגדיר) להיסטוריית הדפדפן, החלפת המצב העליון במקבץ ההיסטוריה והגדרת פונקציית קריאה חוזרת (callback) של ה-listener כדי להגיב לשינויים בהיסטוריה.google.script.url
מספק אמצעים לאחזור הפרמטרים של כתובת ה-URL של הדף הנוכחי ואת המקטע של כתובת ה-URL, אם הם קיימים.
ממשקי ה-API האלה של ההיסטוריה זמינים רק לאפליקציות אינטרנט. הם לא נתמכים בסרגלי צד, בתיבות דו-שיח ובתוספים. כמו כן, לא מומלץ להשתמש באפשרות הזו באפליקציות אינטרנט שמוטמעות ב-Google Sites.