אם אתם יוצרים ממשק משתמש לסקריפט, תוכלו לפרסם אותו כאפליקציית אינטרנט. לדוגמה, סקריפט שמאפשר למשתמשים לקבוע פגישות עם חברי צוות תמיכה עדיף להציג כאפליקציית אינטרנט, כדי שהמשתמשים יוכלו לגשת אליו ישירות מהדפדפנים שלהם.
אפשר להפוך ל-Web Apps גם סקריפטים עצמאיים וגם סקריפטים שמקושרים לאפליקציות Google Workspace , כל עוד הם עומדים בדרישות הבאות.
דרישות לאפליקציות אינטרנט
אפשר לפרסם סקריפט כאפליקציית אינטרנט אם הוא עומד בדרישות הבאות:
- היא מכילה פונקציית
doGet(e)
אוdoPost(e)
. - הפונקציה מחזירה אובייקט service HTML
HtmlOutput
או אובייקט שירות תוכןTextOutput
.
פרמטרים של בקשות
כשמשתמש נכנס לאפליקציה או שתוכנית שולחת לאפליקציה בקשת HTTP GET
, הפונקציה doGet(e)
מופעלת ב-Apps Script. כשתוכנית שולחת לאפליקציה בקשת HTTP POST
, Apps Script מפעיל את 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 (הגדרת הפריסה).
- לוחצים על פריסת.
אם הענקתם להם גישה, אפשר לשתף את כתובת ה-URL של אפליקציית האינטרנט עם אנשים שרוצים להשתמש בה.
בדיקת פריסה של אפליקציית אינטרנט
כדי לבדוק את הסקריפט כאפליקציית אינטרנט, מבצעים את השלבים הבאים:
- בפינה השמאלית העליונה של פרויקט הסקריפט, לוחצים על פריסה > בדיקת פריסות.
- לצד 'בחירת סוג', לוחצים על 'הפעלת סוגי פריסה' > אפליקציית אינטרנט.
- מתחת לכתובת ה-URL של אפליקציית האינטרנט, לוחצים על העתקה.
מדביקים את כתובת ה-URL בדפדפן ובודקים את אפליקציית האינטרנט.
כתובת ה-URL מסתיימת ב-
/dev
ורק משתמשים שיש להם גישת עריכה לסקריפט יכולים לגשת אליה. המופע הזה של האפליקציה תמיד מפעיל את הקוד שנשמר לאחרונה, והוא מיועד לבדיקה בלבד במהלך הפיתוח.
הרשאות
ההרשאות של אפליקציית אינטרנט משתנות בהתאם לאופן שבו בוחרים להריץ את האפליקציה:
- הפעלת האפליקציה בתור 'אני' – במקרה כזה, הסקריפט תמיד מופעל בתורכם, הבעלים של הסקריפט, לא משנה מי ניגש לאפליקציית האינטרנט.
- הפעלת האפליקציה בתור משתמש שמשתמש באפליקציית האינטרנט – במקרה הזה, הסקריפט פועל במסגרת הזהות של המשתמש הפעיל שמשתמש באפליקציית האינטרנט. הגישה לפי הרשאה הזו גורמת לאפליקציית האינטרנט להציג את כתובת האימייל של הבעלים של הסקריפט כשהמשתמש מאשר את הגישה.
הטמעת אפליקציית האינטרנט ב-Google Sites
כדי להטמיע אפליקציית אינטרנט ב-Google Sites, קודם צריך לפרוס אותה. בנוסף, צריך את כתובת ה-URL בפריסה מתיבת הדו-שיח Deploy
.
כדי להטמיע אפליקציית אינטרנט בדף Sites:
- פותחים את הדף 'אתרים' שבו רוצים להוסיף את אפליקציית האינטרנט.
- בוחרים באפשרות הוספה > הטמעת כתובת URL.
- מדביקים את כתובת ה-URL של אפליקציית האינטרנט ולוחצים על הוספה.
אפליקציית האינטרנט תופיע במסגרת בתצוגה המקדימה של הדף. כשמפרסמים את הדף, יכול להיות שמבקרים באתר יצטרכו לאשר את אפליקציית האינטרנט לפני שהיא תפעל באופן תקין. אפליקציות אינטרנט לא מורשות מציגות למשתמש הנחיות לאישור.
אפליקציות אינטרנט והיסטוריית הדפדפן
יכול להיות שתרצו ליצור אפליקציית אינטרנט ב-Apps Script שת simule אפליקציה עם כמה דפים, או אפליקציה עם ממשק משתמש דינמי שמנוהל באמצעות פרמטרים של כתובות URL. כדי לעשות זאת בצורה טובה, אפשר להגדיר אובייקט מצב שמייצג את דף ה-UI או את דף האפליקציה, ולהעביר את המצב להיסטוריית הדפדפן כשהמשתמש מנווט באפליקציה. אפשר גם להאזין לאירועי היסטוריה כדי שאפליקציית האינטרנט תציג את ממשק המשתמש הנכון כשהמשתמש מנווט קדימה ואחורה באמצעות לחצני הדפדפן. שליחת שאילתה לגבי הפרמטרים של כתובת ה-URL בזמן הטעינה מאפשרת לאפליקציה ליצור את ממשק המשתמש שלה באופן דינמי על סמך הפרמטרים האלה, וכך המשתמש יכול להפעיל את האפליקציה במצב מסוים.
Apps Script מספק שני ממשקי API אסינכרוניים של JavaScript בצד הלקוח כדי לעזור ביצירת אפליקציות אינטרנט שמקושרות להיסטוריית הדפדפן:
google.script.history
מספק שיטות שמאפשרות תגובה דינמית לשינויים בהיסטוריית הדפדפן. הפעולות האלה כוללות: דחיפת מצבים (אובייקטים פשוטים שאפשר להגדיר) להיסטוריית הדפדפן, החלפת המצב העליון בסטאק ההיסטוריה והגדרת פונקציית קריאה חוזרת (callback) של מאזין כדי להגיב לשינויים בהיסטוריה.google.script.url
מספק את האמצעים לאחזור הפרמטרים של כתובת ה-URL והקטע של כתובת ה-URL של הדף הנוכחי, אם הם קיימים.
ממשקי ה-API האלה של ההיסטוריה זמינים רק לאפליקציות אינטרנט. אין תמיכה בהן בסרגלי צד, בתי שיח או בתוספים. לא מומלץ להשתמש בפונקציה הזו גם באפליקציות אינטרנט שמוטמעות באתרים של Google Sites.