המשתמשים צריכים לאשר פרויקטים של סקריפטים שגולשים לנתונים שלהם או פועלים בשמם. כשמשתמש מפעיל סקריפט שדורש הרשאה בפעם הראשונה, בממשק המשתמש מופיעה בקשה להתחיל את תהליך ההרשאה.
במהלך התהליך הזה, ממשק המשתמש מודיע למשתמש מה הסקריפט מבקש לעשות. לדוגמה, יכול להיות שהסקריפט יבקש הרשאה לקרוא את הודעות האימייל של המשתמש או ליצור אירועים ביומן שלו. ההרשאות הפרטיות האלה מוגדרות בפרויקט הסקריפט בתור היקפי OAuth.
ברוב הסקריפטים, מערכת Apps Script מזהה באופן אוטומטי את ההיקפים שנחוצים לכם. אתם יכולים לעיין בהיקפים שבהם נעשה שימוש בסקריפט בכל שלב. אפשר גם להגדיר היקפים באופן מפורש בmanifest באמצעות מחרוזות של כתובות URL. לפעמים צריך להגדיר את ההיקפים באופן מפורש לאפליקציות מסוימות, כמו תוספים, כי באפליקציות שפורסמו צריך תמיד להשתמש בהיקפים הצרים ביותר האפשריים.
במהלך תהליך ההרשאה, מערכת Apps Script מציגה למשתמש תיאורים של היקפי ההרשאות הנדרשים שניתנים לקריאה על ידי בני אדם. לדוגמה, אם ל-script צריכה להיות גישה לקריאה בלבד לגיליונות האלקטרוניים, יכול להיות שההיקף של המניפסט יהיה https://www.googleapis.com/auth/spreadsheets.readonly
. במהלך תהליך ההרשאה, סקריפט עם ההיקף הזה יבקש מהמשתמש לאפשר לאפליקציה "להציג את הגיליונות האלקטרוניים שלך ב-Google Sheets".
חלק מההיקפים כוללים היקפים אחרים. לדוגמה, כשנותנים הרשאה להיקף https://www.googleapis.com/auth/spreadsheets
, הוא מאפשר גישה לקריאה ולכתיבה לגיליונות אלקטרוניים.
הצגת היקפים
כדי לראות את ההיקפים הנדרשים כרגע לפרויקט הסקריפט:
- פותחים את פרויקט הסקריפט.
- בצד ימין, לוחצים על סקירה כללית .
- אפשר לראות את ההיקפים בקטע Project OAuth Scopes.
הגדרת היקפים מפורשים
כדי לקבוע את ההיקפים הנדרשים לסקריפט, Apps Script סורק את הקוד שלו ומחפש קריאות לפונקציות שדורשות אותם. ברוב הסקריפטים זה מספיק ועוזר לחסוך זמן, אבל בתוספים שפורסמו, באפליקציות אינטרנט, באפליקציות של Google Chat ובקריאות ל-Google Chat API צריך לשלוט ישירות יותר בהיקפים.
לפעמים, מערכת Apps Script מקצה לפרויקטים היקפי גישה מאוד רחבים באופן אוטומטי. יכול להיות שהסקריפט מבקש מהמשתמש יותר ממה שהוא צריך, וזו שיטה לא טובה. בסקריפטים שפורסמו, צריך להחליף היקפים רחבים בקבוצה מוגבלת יותר שמתאימה לצרכים של הסקריפט ולא יותר.
אתם יכולים להגדיר באופן מפורש את ההיקפים שבהם פרויקט הסקריפט משתמש על ידי עריכת קובץ manifest שלו. השדה oauthScopes
במניפסט הוא מערך של כל ההיקפים שבהם הפרויקט משתמש. כדי להגדיר את ההיקפים של הפרויקט:
- פותחים את פרויקט הסקריפט.
- בצד ימין, לוחצים על הגדרות הפרויקט .
- מסמנים את התיבה הצגת קובץ המניפסט 'Appscript.json' בעורך.
- בצד ימין, לוחצים על עריכה .
- בצד ימין, לוחצים על הקובץ
appsscript.json
. - מאתרים את השדה ברמה העליונה עם התווית
oauthScopes
. אם הוא לא מופיע, אפשר להוסיף אותו. - השדה
oauthScopes
מציין מערך של מחרוזות. כדי להגדיר את ההיקפים שבהם הפרויקט משתמש, מחליפים את התוכן של המערך הזה בהיקפים שבהם רוצים להשתמש. לדוגמה:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/userinfo.email" ], ... }
- בחלק העליון, לוחצים על סמל השמירה .
אימות OAuth
היקפי OAuth מסוימים הם רגישים כי הם מאפשרים גישה לנתוני המשתמשים ב-Google. אם פרויקט הסקריפט שלכם משתמש בהיקפים שמאפשרים גישה לנתוני משתמשים, הפרויקט צריך לעבור אימות של לקוח OAuth לפני שתוכלו לפרסם אותו באופן ציבורי כאפליקציית אינטרנט או תוסף. מידע נוסף זמין במדריכים הבאים:
- אימות לקוחות OAuth ב-Apps Script
- אפליקציות לא מאומתות
- שאלות נפוצות בנושא אימות OAuth
- שירות Google APIs: המדיניות בנושא נתוני משתמשים
היקפי גישה מוגבלים
בנוסף להיקפים רגישים, היקפים מסוימים מסווגים כמוגבלים וכפופים לכללים נוספים שעוזרים להגן על נתוני המשתמשים. אם אתם מתכוונים לפרסם אפליקציית אינטרנט או תוסף שמשתמשים בהיקף מוגבל אחד או יותר, האפליקציה צריכה לעמוד בכל ההגבלות שצוינו לפני שאפשר יהיה לפרסם אותה.
לפני שמנסים לפרסם, כדאי לעיין ברשימה המלאה של ההיקפים המוגבלים. אם האפליקציה שלכם משתמשת באחד מהם, עליכם לעמוד בדרישות הנוספות לגבי היקפי API ספציפיים לפני הפרסום.