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