יצירת מינוי ל-Google Workspace

בדף הזה מוסבר איך להשתמש ב-Google Workspace Events API כדי ליצור מינויים למשאבים ב-Google Workspace. מינוי ל-Google Workspace מאפשר לאפליקציה לקבל מידע על אירועים ב-Google Workspace, שמייצגים שינויים במשאב ב-Google Workspace. בסקירה הכללית על Google Workspace Events API מפורט מידע על סוגי המשאבים והאירועים ש-Google Workspace Events API תומך בהם.

בדף הזה מפורטים השלבים ליצירת מינוי ל-Google Workspace:

  1. מגדירים את הסביבה.
  2. יצירת נושא ב-Google Cloud Pub/Sub והרשמה אליו. הנושא הזה משמש כנקודת קצה לקבלת אירועים מ-Google Workspace.
  3. קוראים לשיטה create() של Google Workspace Events API במשאב Subscription.
  4. בודקים את המינוי ל-Google Workspace כדי לוודא שנושא ה-Pub/Sub מקבל את האירועים שנרשמתם אליהם.
  5. אפשר גם להגדיר איך לדחוף אירועים לנקודת קצה של האפליקציה, כדי שהאפליקציה תוכל לעבד את האירוע, ואם צריך, לבצע פעולה.

דרישות מוקדמות

Apps Script

  • כדי להשתמש בפקודות Google Cloud CLI במדריך הזה:
    1. מתקינים את Google Cloud CLI.
    2. כדי להפעיל את ה-CLI של gcloud, מריצים את הקוד הבא:
    3.   gcloud init
        
  • פרויקט ב-Google Cloud עם חיוב מופעל. כדי להירשם למינוי ל-Chat, צריך גם להפעיל את Chat API בפרויקט ב-Cloud ולהגדיר את השדות שם האפליקציה, כתובת ה-URL של הדמות ותיאור. פרטים נוספים זמינים במאמר פיתוח אפליקציה ל-Google Chat.
  • נדרש אימות משתמש באמצעות מסך ההסכמה של OAuth שהוגדר לאפליקציה. כשמגדירים את מסך ההסכמה, צריך לציין היקף כדי לתמוך בכל סוג אירוע עבור המינוי. במאמר בחירת היקפים מוסבר איך מגדירים את מסך ההסכמה ומזהים את ההיקפים הנדרשים.
  • פרויקט Apps Script:
    • משתמשים בפרויקט Google Cloud במקום בפרויקט ברירת המחדל שנוצר באופן אוטומטי על ידי Apps Script.
    • לכל היקפי ההרשאות שהוספתם כדי להגדיר את מסך ההסכמה של OAuth, עליכם להוסיף את ההיקפים גם לקובץ appsscript.json בפרויקט Apps Script. לדוגמה:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • מפעילים את השירות המתקדם Google Workspace Events.

Python

  • Python 3.6 ואילך
  • הכלי לניהול חבילות pip
  • ספריות הלקוח העדכניות ביותר של Google ל-Python. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • כדי להשתמש בפקודות Google Cloud CLI במדריך הזה:
    1. מתקינים את Google Cloud CLI.
    2. כדי להפעיל את ה-CLI של gcloud, מריצים את הקוד הבא:
    3.   gcloud init
        
  • פרויקט ב-Google Cloud עם חיוב מופעל. כדי להירשם למינוי ל-Chat, צריך גם להפעיל את Chat API בפרויקט ב-Cloud ולהגדיר את השדות שם האפליקציה, כתובת ה-URL של הדמות ותיאור. פרטים נוספים זמינים במאמר פיתוח אפליקציה ל-Google Chat.
  • נדרש אימות משתמש באמצעות מסך ההסכמה של OAuth שהוגדר לאפליקציה. כשמגדירים את מסך ההסכמה, צריך לציין היקף כדי לתמוך בכל סוג אירוע במינוי. במאמר בחירת היקפים מוסבר איך מגדירים את מסך ההסכמה ומזהים את ההיקפים הנדרשים.

הגדרת הסביבה

בקטע הבא נסביר איך להגדיר את הסביבה לפני יצירת מינוי ל-Google Workspace.

הפעלת Google Workspace Events API ו-Google Cloud Pub/Sub API

לפני שמשתמשים ב-Google APIs, צריך להפעיל אותם בפרויקט ב-Google Cloud. אפשר להפעיל ממשק API אחד או יותר בפרויקט אחד ב-Google Cloud.

מסוף Google Cloud

במסוף Google Cloud, פותחים את הפרויקט ב-Google Cloud של האפליקציה ומפעילים את Google Workspace Events API ו-Pub/Sub API:

הפעלת ממשקי ה-API

gcloud

  1. בספריית העבודה, נכנסים לחשבון Google:

    gcloud auth login
  2. מגדירים את הפרויקט כפרויקט Cloud של האפליקציה:

    gcloud config set project PROJECT_ID

    מחליפים את PROJECT_ID במזהה הפרויקט של הפרויקט ב-Cloud של האפליקציה.

  3. מפעילים את Google Workspace Events API ואת Google Cloud Pub/Sub API:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

יצירת פרטי כניסה של מזהה לקוח ב-OAuth

בוחרים את סוג האפליקציה כדי לקבל הוראות ספציפיות ליצירת מזהה לקוח ב-OAuth:

אפליקציית אינטרנט

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על Application type > Web application.
  4. בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. מוסיפים מזהי URI מורשים שקשורים לאפליקציה:
    • אפליקציות בצד הלקוח (JavaScript) – בקטע מאותרי מקורות JavaScript, לוחצים על הוספת URI. לאחר מכן, מזינים URI לשימוש בבקשות מהדפדפן. כך אפשר לזהות את הדומיינים שמהם האפליקציה יכולה לשלוח בקשות API לשרת OAuth 2.0.
    • אפליקציות בצד השרת (Java,‏ Python ועוד) – בקטע URIs מורשים להפניה אוטומטית לכתובת אחרת, לוחצים על Add URI (הוספת URI). לאחר מכן, מזינים URI של נקודת קצה שאליה שרת OAuth 2.0 יכול לשלוח תגובות.
  6. לוחצים על יצירה. המסך 'לקוח OAuth נוצר' מופיע, שבו מוצגים מזהה הלקוח החדש וסוד הלקוח.

    שימו לב למזהה הלקוח. לא משתמשים בסודות לקוח באפליקציות אינטרנט.

  7. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע מזהי לקוח OAuth 2.0.

Android

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על Application type (סוג האפליקציה) > Android.
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה Package name מזינים את שם החבילה מקובץ AndroidManifest.xml.
  6. בשדה 'טביעת אצבע לאישור SHA-1', מזינים את טביעת האצבע לאישור SHA-1 שנוצרה.
  7. לוחצים על יצירה. יופיע המסך של לקוח ה-OAuth שנוצר, שבו מוצג מזהה הלקוח החדש.
  8. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע 'מזהי לקוח של OAuth 2.0'.

iOS

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על Application type (סוג האפליקציה) > iOS.
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה 'מזהה החבילה', מזינים את מזהה החבילה כפי שרשום בקובץ Info.plist של האפליקציה.
  6. אופציונלי: אם האפליקציה מופיעה ב-Apple App Store, מזינים את מזהה App Store.
  7. אם רוצים, בשדה 'מזהה צוות' מזינים את המחרוזת הייחודית בת 10 התווים שנוצרה על ידי Apple והוקצה לצוות שלכם.
  8. לוחצים על יצירה. יופיע המסך 'לקוח OAuth נוצר', שבו יוצגו מזהה הלקוח וסוד הלקוח החדשים.
  9. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע 'מזהי לקוח של OAuth 2.0'.

אפליקציית Chrome

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על Application type (סוג האפליקציה) > Chrome app (אפליקציית Chrome).
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה 'מזהה אפליקציה', מזינים את מחרוזת המזהה הייחודית של האפליקציה בת 32 תווים. אפשר למצוא את ערך המזהה הזה בכתובת ה-URL של האפליקציה בחנות האינטרנט של Chrome ובמרכז השליטה למפתחים של חנות האינטרנט של Chrome.
  6. לוחצים על יצירה. יופיע המסך 'לקוח OAuth נוצר', שבו יוצגו מזהה הלקוח וסוד הלקוח החדשים.
  7. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע 'מזהי לקוח של OAuth 2.0'.

אפליקציה לשולחן העבודה

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על Application type (סוג האפליקציה) > Desktop app (אפליקציה למחשב).
  4. בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. לוחצים על יצירה. יופיע המסך 'לקוח OAuth נוצר', שבו יוצגו מזהה הלקוח וסוד הלקוח החדשים.
  6. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע מזהי לקוח OAuth 2.0.

טלוויזיות והתקני קלט עם הגבלות

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על סוג האפליקציה > טלוויזיות ומכשירי קלט מוגבלים.
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. לוחצים על יצירה. יופיע המסך 'לקוח OAuth נוצר', שבו יוצגו מזהה הלקוח וסוד הלקוח החדשים.
  6. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע 'מזהי לקוח של OAuth 2.0'.

Universal Windows Platform (UWP)‎

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
  3. לוחצים על סוג האפליקציה > Universal Windows Platform‏ (UWP).
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה 'מזהה חנות', מזינים את הערך הייחודי של מזהה Microsoft Store של האפליקציה, שמכיל 12 תווים. המזהה הזה מופיע בכתובת ה-URL של האפליקציה ב-Microsoft Store וב-Partner Center.
  6. לוחצים על יצירה. המסך 'לקוח OAuth נוצר' מופיע, ומוצגים בו מזהה הלקוח החדש וסוד הלקוח החדש.
  7. לוחצים על אישור. פרטי הכניסה שנוצרו מופיעים בקטע 'מזהי לקוח של OAuth 2.0'.

מורידים את קובץ ה-JSON של סוד הלקוח

קובץ סוד הלקוח הוא ייצוג JSON של פרטי הכניסה של מזהה הלקוח ב-OAuth, שאפליקצייתכם יכולה להפנות אליו כשאתם מספקים את פרטי הכניסה.

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. בקטע OAuth 2.0 Client IDs, לוחצים על מזהה הלקוח שיצרתם.

  3. לוחצים על הורדת קובץ JSON.

  4. שומרים את הקובץ כ-client_secrets.json.

יצירה של נושא Pub/Sub והרשמה אליו

בקטע הזה יוצרים נושא Pub/Sub ומנוי לנושא. הנושא ב-Pub/Sub משמש כנקודת הקצה של ההתראות, שבה מתקבלים אירועים מהמינוי ל-Google Workspace.

למידע נוסף על יצירת נושאים ב-Pub/Sub ועל ניהול שלהם, קראו את המסמכים של Pub/Sub.

כדי ליצור נושא Pub/Sub ולהירשם אליו:

מסוף Google Cloud

  1. נכנסים לדף Pub/Sub במסוף Google Cloud:

    כניסה אל Google Cloud Pub/Sub

    מוודאים שבחרתם את הפרויקט ב-Cloud של האפליקציה.

  2. לוחצים על Create topic ומבצעים את הפעולות הבאות:

    1. נותנים שם לנושא, למשל workspace-events-topic.
    2. משאירים את האפשרות הוספת מינוי ברירת מחדל מסומנת. מערכת Pub/Sub נותנת למינוי ברירת המחדל הזה שם דומה לשם הנושא, למשל workspace-events-topic-sub.
    3. אופציונלי: מעדכנים או מגדירים מאפיינים נוספים לנושא.
  3. לוחצים על יצירה. שם הנושא המלא מעוצב כך: projects/PROJECT_ID/topics/TOPIC_ID. השם המלא הזה ישמש בשלב מאוחר יותר.

  4. מעניקים גישה לפרסום הודעות Pub/Sub בנושא:

    1. בדף של הנושא, עוברים לחלונית הצדדית ופותחים את הכרטיסייה Permissions.
    2. לוחצים על Add Principal.
    3. בשדה Add principals, מוסיפים את חשבון השירות של אפליקציית Google Workspace שמעבירה את האירועים למינוי:
      1. באירועים ב-Chat, chat-api-push@system.gserviceaccount.com.
      2. באירועים ב-Meet, meet-api-event-push@system.gserviceaccount.com.
    4. בתפריט Assign roles (הקצאת תפקידים), בוחרים באפשרות Pub/Sub Publisher.
    5. לוחצים על שמירה. עדכון ההרשאות לנושא עשוי להימשך כמה דקות.

gcloud

  1. כדי ליצור נושא בפרויקט ב-Cloud, מריצים את הפקודה הבאה:

    gcloud pubsub topics create TOPIC_ID

    מחליפים את TOPIC_ID במזהה ייחודי לנושא, למשל workspace-events-topic.

    הפלט מציג את שם הנושא המלא, בפורמט projects/PROJECT_ID/topics/TOPIC_ID. שימו לב לשם, וודאו שהערך של PROJECT_ID הוא מזהה הפרויקט ב-Cloud של האפליקציה. שם הנושא ישמש אתכם בשלב הבא, וגם ליצירת המינוי ל-Google Workspace בהמשך.

  2. מעניקים גישה לפרסום הודעות בנושא:

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    מחליפים את מה שכתוב בשדות הבאים:

    • TOPIC_NAME: שם הנושא המלא, שהוא הפלט מהשלב הקודם. בפורמט projects/PROJECT_ID/topics/TOPIC_ID.
    • GOOGLE_WORKSPACE_APPLICATION: אפליקציית Google Workspace שאמורה לשלוח אירועים למינוי שלכם:

      • כדי לקבל אירועים מ-Chat, משתמשים ב-chat-api-push@system.gserviceaccount.com.
      • כדי לקבל אירועים מ-Meet, משתמשים ב-meet-api-event-push@system.gserviceaccount.com.

    עדכון ההרשאות לנושא עשוי להימשך כמה דקות.

  3. יוצרים מינוי Pub/Sub לנושא:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    מחליפים את מה שכתוב בשדות הבאים:

    • SUBSCRIPTION_NAME: שם למינוי, למשל workspace-events-subscription.
    • TOPIC_NAME: השם של הנושא שיצרתם בשלב הקודם.

הרשמה למשאב ב-Google Workspace

בקטע הזה, נרשמים למשאב ב-Google Workspace שרוצים לעקוב אחרי אירועים בו.

בחירה של משאב היעד וזיהוי שלו

במינוי ל-Google Workspace, משאב היעד הוא משאב Google Workspace שאחריו אתם עוקבים אחרי אירועים. המשאב היעד מיוצג בשדה targetResource של המינוי, בפורמט של שם המשאב המלא. לדוגמה, במינוי שמנטר מרחב משותף ב-Google Chat‏ (spaces/AAAABBBBBBB), הערך של targetResource הוא //chat.googleapis.com/spaces/AAAABBBBBBB.

לפני שיוצרים את המינוי, כדאי לעיין בקטעים הבאים כדי ללמוד איך לזהות את משאב היעד ולקבוע את הפורמט שלו.

זיהוי משאב יעד ל-Chat

משאב היעד אופן הלימוד מגבלות
רווח

//chat.googleapis.com/spaces/SPACE

כאשר SPACE הוא המזהה ב שם המשאב של משאב space ב-Chat API. אפשר לקבל את המזהה מכתובת ה-URL של המרחב המשותף או באמצעות השיטה spaces.list().

משתמש Chat שמאשר את המינוי חייב להיות חבר במרחב המשותף דרך חשבון Google או חשבון Google Workspace שלו.
כל המרחבים המשותפים של משתמש

//chat.googleapis.com/spaces/-

המינוי מקבל רק אירועים במרחבים המשותפים שבהם המשתמש חבר דרך חשבון Google Workspace או חשבון Google שלו.
משתמש

//cloudidentity.googleapis.com/users/USER

כאשר USER הוא המזהה ב שם המשאב של משאב user ב-Chat API. פרטים נוספים זמינים במאמר זיהוי והגדרה של משתמשי Google Chat.

המינויים מקבלים רק אירועים לגבי המשתמש שהעניק הרשאה למינויים. משתמש לא יכול לאשר מינוי בשם משתמשים אחרים.

זיהוי משאב יעד ל-Meet

משאב היעד אופן הלימוד מגבלות (אם רלוונטי)
מקום לפגישה //meet.googleapis.com/spaces/SPACE

כאשר SPACE הוא המזהה ב שם המשאב של משאב space ב-Meet API ל-REST. מידע נוסף זמין במאמר איך Meet מזהה מרחב עבודה.

משתמש //cloudidentity.googleapis.com/users/USER

כאשר USER הוא המזהה בשדה signedinUser.user של המשאב participant ב-Meet API ל-REST. למידע נוסף, קראו את המאמר עבודה עם משתתפים.

המינויים מקבלים אירועים לגבי מרחבי עבודה משותפים שבהם המשתמש הוא:

  • הבעלים של מתחם הישיבות.
  • מארגן האירוע ביומן Google שמשויך למרחב האירועים.

יצירת מינוי ל-Google Workspace

כדי ליצור מינוי, משתמשים ב-method‏ subscriptions.create() של Google Workspace Events API כדי ליצור משאב Subscription. מציינים את השדות הבאים:

  • targetResource: חשבון Google Workspace שזיהיתם בקטע הקודם, בפורמט של שם המשאב המלא שלו.
  • eventTypes: מערך של סוג אירוע אחד או יותר שרוצים לקבל לגבי המשאב. לדוגמה, אם האפליקציה שלכם צריכה לדעת רק על הודעות חדשות שפרסמו במרחב משותף ב-Chat, היא יכולה פשוט להירשם לאירועים לגבי הודעות שנוצרו.
  • notificationEndpoint: נקודת קצה לקבלת התראות שבה מתקבלים אירועים מהמינוי ל-Google Workspace. משתמשים בנושא Pub/Sub שיצרתם בקטע הקודם.
  • payloadOptions: אפשרויות לציין כמה נתוני משאבים לכלול במטען הייעודי של האירוע. ההגדרה הזו משפיעה על מועד התפוגה של המינוי. מידע נוסף זמין במאמר נתוני אירועים.

כדי ליצור מינוי ל-Google Workspace:

Apps Script

  1. בפרויקט Apps Script, יוצרים קובץ סקריפט חדש בשם createSubscription ומוסיפים את הקוד הבא:

    function createSubscription() {
      // The Google Workspace resource to monitor for events.
      const targetResource = 'TARGET_RESOURCE';
    
      // The types of events to receive.
      const eventTypes = [EVENT_TYPES];
    
      // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
      const pubsubTopic = 'TOPIC_NAME';
    
      // Whether to include resource data or not.
      const resourceData = RESOURCE_DATA;
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.create({
        targetResource: targetResource,
        eventTypes: eventTypes,
        notificationEndpoint: {
          pubsubTopic: pubsubTopic,
        },
        payloadOptions: {
          includeResource: resourceData
        }
      });
      console.log(response);
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • TARGET_RESOURCE: משאב Google Workspace שנרשמתם אליו, בפורמט של שם המשאב המלא. לדוגמה, כדי להירשם למרחב משותף ב-Google Chat עם מזהה המרחב AAAABBBB, צריך להשתמש ב-//chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: סוג אירוע אחד או יותר שרוצים להירשם אליו במשאב היעד. הפורמט הוא מערך של מחרוזות, כמו 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: השם המלא של נושא ה-Pub/Sub שיצרתם בפרויקט ב-Cloud. בפורמט projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים בתוכן הייעודי (payload):

      • True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שכלולים, מוסיפים את השדה fieldMask ומציינים לפחות שדה אחד של המשאב שהשתנה. רק מינויים למשאבים ב-Chat תומכים בהכללת נתוני המשאבים.
      • False: לא כולל נתוני משאבים.
  2. כדי ליצור את המינוי ל-Google Workspace, מריצים את הפונקציה createSubscription בפרויקט Apps Script.

Python

  1. בתיקיית העבודה, יוצרים קובץ בשם create_subscription.py ומוסיפים את הקוד הבא:

    """Create subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # The Google Workspace resource to monitor for events.
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    # The types of events to receive.
    EVENT_TYPES = [EVENT_TYPES]
    
    # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
    TOPIC = 'TOPIC_NAME'
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'target_resource': TARGET_RESOURCE,
        'event_types': EVENT_TYPES,
        'notification_endpoint': {'pubsub_topic': TOPIC},
        'payload_options': {'include_resource': RESOURCE_DATA},
    }
    response = service.subscriptions().create(body=BODY).execute()
    print(response)
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SCOPES: היקף הרשאות OAuth אחד או יותר שתומכים בכל סוג אירוע עבור המינוי. בפורמט של מערך מחרוזות. כדי לציין כמה היקפים, מפרידים ביניהם בפסיקים. לדוגמה, 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • TARGET_RESOURCE: משאב Google Workspace שאליו רוצים להירשם, בפורמט של שם המשאב המלא. לדוגמה, כדי להירשם למרחב משותף ב-Google Chat עם מזהה המרחב AAAABBBB, צריך להשתמש ב-//chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: סוג אירוע אחד או יותר שרוצים להירשם אליהם במשאב היעד. הפורמט הוא מערך של מחרוזות, כמו 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: השם המלא של נושא ה-Pub/Sub שיצרתם בפרויקט ב-Cloud. בפורמט projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים בתוכן הייעודי (payload):

      • True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שכלולים, מוסיפים את השדה fieldMask ומציינים לפחות שדה אחד של המשאב שהשתנה. רק מינויים למשאבים ב-Chat תומכים בהכללת נתוני המשאבים.
      • False: לא כולל נתוני משאבים.
  2. כדי ליצור את המינוי ל-Google Workspace, מריצים את הפקודה הבאה במסוף:

    python3 create_subscription.py

Google Workspace Events API מחזיר פעולה ממושכת שהושלמו, שמכילה את המופע של המשאב Subscription שיצרתם.

בדיקת המינוי ל-Google Workspace

כדי לבדוק שאתם מקבלים אירועים מ-Google Workspace, תוכלו להפעיל אירוע ולשלוף הודעות למינוי ל-Pub/Sub.

כדי לבדוק את המינוי ל-Google Workspace:

מסוף Google Cloud

  1. הפעלת סוג אחד או יותר של אירועים במשאב היעד של המינוי ל-Google Workspace. לדוגמה, אם נרשמתם לקבלת התראות על הודעות חדשות במרחב משותף ב-Chat, תוכלו לפרסם הודעה במרחב המשותף.

  2. נכנסים לדף Pub/Sub במסוף Google Cloud:

    כניסה לדף Pub/Sub

    מוודאים שבחרתם את הפרויקט ב-Cloud של האפליקציה.

  3. בתפריט Pub/Sub, לוחצים על Subscriptions.

  4. בטבלה, מאתרים את המינוי ל-Pub/Sub של הנושא ולוחצים על שם המינוי.

  5. לוחצים על הכרטיסייה הודעות.

  6. לוחצים על Pull. יכול להיות שיחלפו כמה דקות עד שאירוע ייצור הודעה ב-Pub/Sub.

gcloud

  1. הפעלת סוג אחד או יותר של אירועים במשאב היעד של המינוי ל-Google Workspace. לדוגמה, אם נרשמתם לקבלת התראות על הודעות חדשות במרחב משותף ב-Chat, תוכלו לפרסם הודעה במרחב המשותף.

  2. מריצים את הפקודה הבאה:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    מחליפים את מה שכתוב בשדות הבאים:

    • PUBSUB_SUBSCRIPTION_NAME: השם המלא של המינוי ל-Pub/Sub, בפורמט projects/SUBSCRIPTION_ID/subscriptions/SUBSCRIPTION_ID.
    • MESSAGE_COUNT: המספר המקסימלי של הודעות Pub/Sub שרוצים למשוך.

    יצירת הודעה ב-Pub/Sub עשויה להימשך כמה דקות.

לכל אירוע ב-Google Workspace שהפעלתם, תישלח הודעה למינוי שלכם ל-Pub/Sub שמכילה את האירוע. פרטים נוספים זמינים במאמר קבלת אירועים כהודעות ב-Google Cloud Pub/Sub.

הגדרת האופן שבו האפליקציה מקבלת אירועים

המינוי ל-Pub/Sub שיצרתם מבוסס על משיכה. אחרי שבודקים את המינוי ל-Pub/Sub, אפשר לעדכן את סוג המסירה כדי לשנות את האופן שבו האפליקציה מקבלת אירועים. לדוגמה, אפשר להגדיר את המינוי ל-Pub/Sub לסוג העברה של דחיפה, כדי שהאפליקציה תוכל לקבל אירועים ישירות לנקודת קצה של האפליקציה.

מידע נוסף על הגדרת מינויים ב-Pub/Sub זמין במסמכי העזרה של Pub/Sub.