Google Sheets הוא פתרון לגיליונות אלקטרוניים מבוסס-ענן שתומך בשיתוף פעולה בזמן אמת ומספק כלים להמחשה, לעיבוד ולתקשור של נתונים.
במדריך הזה נדגים איך ליצור ולפרוס תהליך עבודה שיוצר נקודת קצה של קריאה חוזרת (או webhook), שומר את כתובת ה-URL של הקריאה החוזרת ב-Google Sheets, משהה את ההפעלה ואז מחכה לאישור אנושי דרך גיליון האלקטרוני של Sheets כדי להפעיל מחדש את תהליך העבודה. מידע נוסף על שימוש בהחזרת שיחות
מטרות
במדריך הזה תלמדו:
- יוצרים תיקייה חדשה ב-Google Drive. התיקייה הזו משמשת לאחסון הגיליון האלקטרוני, ומאפשרת לתהליך העבודה לכתוב בגיליון האלקטרוני.
- יוצרים גיליון אלקטרוני ב-Google Sheets כדי לתעד אישור ולהפעיל קריאה חוזרת לתהליך עבודה.
- אפשר להשתמש ב-Google Apps Script, פלטפורמת JavaScript מבוססת-ענן שמאפשרת ליצור, לקרוא ולערוך מוצרים של Google Workspace באופן פרוגרמטי, כדי להפעיל מחדש תהליך עבודה שהושהה בכל פעם שבקשה מאושרת באמצעות עדכון של הגיליון האלקטרוני.
- יצירה ופריסה של תהליך עבודה שקורא למחבר Google Sheets API כדי להוסיף נתונים לגיליון האלקטרוני. תהליך העבודה מופעל, מושהה ואז ממשיך כשהקריאה החוזרת מאושרת דרך הגיליון האלקטרוני. מידע נוסף על מחברים של Workflows
- בודקים את התהליך כולו ומוודאים שתהליך העבודה מתבצע כמו שציפיתם.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
במדריך הזה נעשה שימוש גם ב-Google Workspace. שירותים ברמה עסקית שלא כלולים באפליקציות הבסיסיות של Google שזמינות בחינם הם שירותים בתשלום.
לפני שמתחילים
אפשר להריץ חלק מהפקודות הבאות במסוף Google Cloud או באמצעות Google Cloud CLI בטרמינל או ב-Cloud Shell.
יכול להיות שהגבלות אבטחה שהוגדרו בארגון שלכם ימנעו מכם להשלים את השלבים הבאים. מידע לפתרון בעיות זמין במאמר פיתוח אפליקציות בסביבה מוגבלת. Google Cloud
המסוף
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
מוודאים שהחיוב מופעל בפרויקט Google Cloud . כך בודקים אם החיוב מופעל בפרויקט
מפעילים את ממשקי ה-API של Compute Engine, Sheets ו-Workflows.
חשוב שתשימו לב לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, כי תצטרכו לקשר אותו לתהליך העבודה במדריך הזה לצורך בדיקה. בפרויקטים חדשים שבהם מופעל Compute Engine API, חשבון השירות הזה נוצר עם תפקיד העריכה הבסיסי ב-IAM, ובפורמט האימייל הבא:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
אפשר לראות את מספר הפרויקט בדף Welcome במסוף Google Cloud .
בסביבות ייצור, מומלץ מאוד ליצור חשבון שירות חדש ולהקצות לו תפקיד IAM אחד או יותר שמכילים את ההרשאות המינימליות הנדרשות, ולפעול לפי העיקרון של הרשאות מינימליות.
gcloud
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
מוודאים שהחיוב מופעל בפרויקט Google Cloud . כך בודקים אם החיוב מופעל בפרויקט
מפעילים את ממשקי ה-API של Compute Engine, Sheets ו-Workflows.
gcloud services enable \ compute.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
חשוב שתשימו לב לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, כי תצטרכו לקשר אותו לתהליך העבודה במדריך הזה לצורך בדיקה. בפרויקטים חדשים שבהם מופעל Compute Engine API, חשבון השירות הזה נוצר עם תפקיד העריכה הבסיסי ב-IAM, ובפורמט האימייל הבא:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
אפשר לאחזר את מספר הפרויקט:
gcloud projects describe PROJECT_ID
בסביבות ייצור, מומלץ מאוד ליצור חשבון שירות חדש ולהקצות לו תפקיד IAM אחד או יותר שמכילים את ההרשאות המינימליות הנדרשות, ולפעול לפי העיקרון של הרשאות מינימליות.
יצירת תיקייה חדשה ב-Google Drive
יוצרים תיקייה חדשה ב-Google Drive. התיקייה הזו משמשת לאחסון הגיליון האלקטרוני. הגדרת הרשאה לתיקייה המשותפת מאפשרת לתהליך העבודה לכתוב בגיליון האלקטרוני.
- בקר בכתובת drive.google.com.
- לוחצים על חדש > תיקייה חדשה.
- מזינים שם לתיקייה.
- לוחצים על יצירה.
- לוחצים לחיצה ימנית על התיקייה החדשה ובוחרים באפשרות שיתוף.
מוסיפים את כתובת האימייל של חשבון השירות שמוגדר כברירת המחדל של Compute Engine.
כך מעניקים לחשבון השירות גישה לתיקייה. כשמשייכים את חשבון השירות לזרימת העבודה, לזרימת העבודה תהיה גישת עריכה לכל קובץ בתיקייה. מידע נוסף על שיתוף קבצים, תיקיות ותיקיות אחסון שיתופי
בוחרים את התפקיד עריכה.
מבטלים את הסימון בתיבת הסימון שליחת הודעה לאנשים.
לוחצים על שיתוף.
יצירת גיליון אלקטרוני באמצעות Google Sheets
כשיוצרים גיליון אלקטרוני באמצעות Google Sheets, הוא נשמר ב-Google Drive. כברירת מחדל, הגיליון האלקטרוני נשמר בתיקיית הבסיס ב-Drive. אין אפשרות ליצור גיליון אלקטרוני ישירות בתיקייה ספציפית באמצעות Google Sheets API. עם זאת, יש חלופות, כולל העברת הגיליון האלקטרוני לתיקייה ספציפית אחרי שיוצרים אותו, כמו בדוגמה הזו. מידע נוסף זמין במאמר עבודה עם תיקיות ב-Google Drive.
עוברים אל sheets.google.com.
לוחצים על חדש
.
פעולה זו תיצור גיליון אלקטרוני חדש ותפתח אותו. לכל גיליון אלקטרוני יש ערך ייחודי של
spreadsheetIdשמורכב מאותיות, מספרים, מקפים או קווים תחתונים. המזהה של הגיליון האלקטרוני מופיע בכתובת ה-URL של Google Sheets:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0חשוב לזכור את המזהה הזה כי תצטרכו אותו כשתיצרו את תהליך העבודה.
מוסיפים כותרות לעמודות בהתאם לדוגמה הבאה:

שימו לב שהערך בעמודה G, Approved?, משמש להפעלת קריאות חוזרות בתהליך העבודה.
מעבירים את הגיליון האלקטרוני לתיקיית Google Drive שיצרתם קודם:
- בגיליון האלקטרוני, בוחרים באפשרות קובץ > העברה.
- עוברים לתיקייה שיצרתם.
- לוחצים על Move.
אפשר גם להשתמש במחבר Google Sheets API כדי ליצור גיליון אלקטרוני. הערה: כשמשתמשים בכלי לחיבור, אפשר לאחזר את spreadsheetId מהתוצאה resp.
לדוגמה:
- create_spreadsheet:
call: googleapis.sheets.v4.spreadsheets.create
args:
body:
connector_params:
scopes: ${driveScope}
result: resp
- assign_sheet_id:
assign:
- sheetId: ${resp.spreadsheetId}
הרחבת Google Sheets באמצעות Apps Script
Apps Script מאפשר ליצור, לקרוא ולערוך גיליונות אלקטרוניים של Google Sheets באופן פרוגרמטי. רוב הסקריפטים שמיועדים ל-Sheets מבצעים מניפולציות במערכים כדי ליצור אינטראקציה עם התאים, השורות והעמודות בגיליון אלקטרוני. למבוא לשימוש ב-Apps Script עם Google Sheets, אפשר לעיין במדריך למתחילים בנושא פונקציות בהתאמה אישית.
יצירת פרויקט Apps Script מ-Google Sheets:
- פותחים את הגיליון האלקטרוני ב-Sheets.
- בוחרים באפשרות תוספים > Apps Script.
- בכלי לעריכת סקריפטים, לוחצים על Untitled project (פרויקט ללא שם).
- נותנים שם לפרויקט ולוחצים על שינוי השם.
התסריט עכשיו מקשר לגיליון האלקטרוני, מה שנותן לתסריט יכולות מיוחדות לשנות את ממשק המשתמש או להגיב כשהגיליון האלקטרוני נפתח.
פרויקט סקריפט מייצג אוסף של קבצים ומשאבים של Apps Script. לקובצי קוד בפרויקט סקריפט יש סיומת
.gs.אתם יכולים להשתמש ב-Apps Script כדי לכתוב פונקציות בהתאמה אישית שתוכלו להשתמש בהן ב-Google Sheets בדיוק כמו בפונקציה מובנית. פונקציות בהתאמה אישית נוצרות באמצעות JavaScript רגיל. כדי ליצור פונקציה:
- פותחים את פרויקט Apps Script.
- לוחצים על עריכה .
- קובץ סקריפט מופיע כקובץ פרויקט בשם
Code.gs. כדי לערוך את הקובץ, בוחרים אותו. מחליפים את הקוד בכלי לעריכת סקריפטים בקוד הבא, שקורא את הנתונים בגיליון האלקטרוני ומעביר אותם כקלט להרצת תהליך עבודה:
לוחצים על סמל השמירה .
טריגרים שאפשר להתקין ב-Apps Script מאפשרים להריץ פונקציה מסוימת בפרויקט סקריפט כשמתקיימים תנאים מסוימים, למשל כשפותחים או עורכים גיליון אלקטרוני. כדי ליצור טריגר:
- פותחים את פרויקט Apps Script.
- לוחצים על Triggers (טריגרים) .
- לוחצים על Add Trigger (הוספת טריגר).
- בתיבת הדו-שיח Add Trigger for YOUR_PROJECT_NAME (הוספת טריגר ל-YOUR_PROJECT_NAME), מגדירים את הטריגר:
- ברשימה Choose which function to run (בחירת הפונקציה להפעלה), בוחרים באפשרות handleEdit.
- ברשימה Choose which deployment should run (בחירת הפריסה להפעלה), בוחרים באפשרות Head (ראשי).
- ברשימה בחירת מקור אירועים, בוחרים באפשרות מגיליון אלקטרוני.
- ברשימה Select event type (בחירת סוג האירוע), בוחרים באפשרות On edit (בעריכה).
- ברשימה הגדרות התראות על כשל, בוחרים באפשרות התראה יומית.
- לוחצים על Save.
אם מוצגת בקשה לבחירת חשבון Google, בוחרים את החשבון המתאים ולוחצים על אישור.
ההרשאה הזו מאפשרת לפרויקט Apps Script שלכם לראות, לערוך, ליצור ולמחוק את הגיליונות האלקטרוניים שלכם ב-Google Sheets, וגם להתחבר לשירות חיצוני.
קובץ המניפסט של פרויקט Apps Script הוא קובץ JSON שמצוינים בו פרטי פרויקט בסיסיים ש-Apps Script צריך כדי להריץ סקריפט בהצלחה. שימו לב: הכלי לעריכת סקריפטים של Apps Script מסתיר כברירת מחדל את קובצי המניפסט כדי להגן על הגדרות הפרויקט של Apps Script. עורכים את קובץ המניפסט:
- פותחים את פרויקט Apps Script.
- לוחצים על הגדרות הפרויקט .
- מסמנים את התיבה הצגת קובץ המניפסט 'appsscript.json' בעורך.
- לוחצים על עריכה .
- קובץ המניפסט מופיע כקובץ פרויקט בשם
appsscript.json. כדי לערוך את הקובץ, בוחרים אותו. השדה
oauthScopesמציין מערך של מחרוזות. כדי להגדיר את היקפי ההרשאות שבהם הפרויקט משתמש, מוסיפים מערך עם ההיקפים שרוצים לתמוך בהם. לדוגמה:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
ההגדרה הזו קובעת את ההיקפים המפורשים הבאים:
- התחברות לשירות חיצוני
- קריאה, עריכה, הגדרה ומחיקה של הנתונים שלך ב- Google Cloud , וקריאת כתובת האימייל של החשבון שלך ב-Google
- הצגה, עריכה, יצירה ומחיקה של כל הגיליונות האלקטרוניים שלך ב-Google Sheets
לוחצים על סמל השמירה .
פריסת תהליך עבודה שכותב לגיליון אלקטרוני ומשתמש בפונקציות קריאה חוזרת
פריסת תהליך עבודה שמופעל, מושהה ואז מופעל מחדש כשבקשת התקשרות חוזרת מאושרת דרך גיליון אלקטרוני. תהליך העבודה כותב לגיליון אלקטרוני ב-Sheets באמצעות מחבר Google Sheets API.
המסוף
נכנסים לדף Workflows במסוף Google Cloud :
לוחצים על Create.
מזינים שם לתהליך העבודה החדש:
workflows-awaits-callback-sheets.ברשימה Region, בוחרים באפשרות us-central1 (Iowa).
בקטע חשבון שירות, בוחרים את חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).לוחצים על הבא.
בעורך תהליכי העבודה, מזינים את ההגדרה הבאה לתהליך העבודה:
חשוב להחליף את הערך של מציין המקום
sheetIdבערךspreadsheetId.לוחצים על פריסה.
gcloud
יוצרים קובץ קוד מקור לתהליך העבודה:
touch workflows-awaits-callback-sheets.yamlבכלי לעריכת טקסט, מעתיקים את זרימת העבודה הבאה לקובץ קוד המקור:
חשוב להחליף את הערך של מציין המקום
sheetIdבערךspreadsheetId.מריצים את הפקודה הבאה כדי לפרוס את תהליך העבודה:
gcloud workflows deploy workflows-awaits-callback-sheets \ --source=workflows-awaits-callback-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
מחליפים את
PROJECT_NUMBERבמספר הפרויקט ב- Google Cloud. אפשר לאחזר את מספר הפרויקט:gcloud projects describe PROJECT_ID
בדיקת התהליך מקצה לקצה
מריצים את זרימת העבודה כדי לבדוק את הזרימה מקצה לקצה. כשמריצים תהליך עבודה, מופעלת ההגדרה הנוכחית של תהליך העבודה שמשויכת לתהליך העבודה.
המסוף
נכנסים לדף Workflows במסוף Google Cloud :
בדף Workflows, בוחרים את זרימת העבודה workflows-awaits-callback-sheets כדי לעבור לדף הפרטים שלה.
בדף פרטי תהליך העבודה, לוחצים על play_arrow הפעלה.
לוחצים שוב על Execute.
תהליך העבודה מתחיל ומצב הביצוע שלו צריך להיות Running. בנוסף, ביומנים מצוין שתהליך העבודה מושהה וממתין:
Execute steps here before waiting for callback from sheets ... Started waiting for callback from sheet 1JlNFFnqs760M_KDqeeeDc_qtrABZDxoalyCmRE39dpM
מוודאים שפרטי הקריאה החוזרת נכתבו בשורה בגיליון האלקטרוני.
לדוגמה, בעמודה Execution ID אמור להופיע מזהה ההפעלה של תהליך העבודה, בעמודה Callback URL אמורה להופיע נקודת קצה של קריאה חוזרת, ובעמודה Approved? אמור להופיע הערך FALSE.
בגיליון האלקטרוני, משנים את הערך FALSE לערך TRUE.
אחרי דקה או שתיים, הביצוע אמור להימשך ולהסתיים עם מצב ביצוע של Succeeded.
gcloud
פותחים טרמינל.
מריצים את תהליך העבודה:
gcloud workflows run workflows-awaits-callback-sheets
תהליך העבודה מתחיל והפלט צריך לציין שתהליך העבודה מושהה וממתין:
Waiting for execution [a8361789-90e0-467f-8bd7-ea1c81977820] to complete...working.
מוודאים שפרטי הקריאה החוזרת נכתבו בשורה בגיליון האלקטרוני.
לדוגמה, בעמודה Execution ID אמור להופיע מזהה ההפעלה של תהליך העבודה, בעמודה Callback URL אמורה להופיע נקודת קצה של קריאה חוזרת, ובעמודה Approved? אמור להופיע הערך FALSE.
בגיליון האלקטרוני, משנים את הערך FALSE לערך TRUE.
אחרי דקה או שתיים, הביצוע אמור להתחדש ואז להסתיים עם מצב ביצוע של
SUCCEEDED.
הסרת המשאבים
אם יצרתם פרויקט חדש בשביל המדריך הזה, תמחקו את הפרויקט. אם השתמשתם בפרויקט קיים ואתם רוצים לשמור אותו בלי השינויים שנוספו במדריך הזה, תצטרכו למחוק את המשאבים שנוצרו לצורך המדריך.
מחיקת הפרויקט
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך הזה.
כדי למחוק את הפרויקט:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.