יצירת מינוי ל-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. כדי לוודא שהנושא ב-Pub/Sub שאליו נרשמתם מקבל אירועים, אתם יכולים לבדוק את המינוי שלכם ל-Google Workspace.
  5. אפשר גם להגדיר איך לשלוח אירועים לנקודת קצה של האפליקציה, כדי שהאפליקציה תוכל לעבד את האירוע ולבצע פעולה אם צריך.

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

Apps Script

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

הגדרת הסביבה

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

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

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

מסוף 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 במזהה הפרויקט של פרויקט הענן של האפליקציה.

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

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

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

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

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

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

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

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

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

Android

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

  2. לוחצים על Create Client.
  3. לוחצים על Application type> Android.
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה 'שם החבילה' מזינים את שם החבילה מקובץ AndroidManifest.xml.
  6. בשדה 'טביעת אצבע לאישור SHA-1', מזינים את טביעת האצבע לאישור SHA-1 שנוצרה.
  7. לוחצים על יצירה.

    פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.

iOS

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

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

    פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.

אפליקציית Chrome

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

  2. לוחצים על Create Client.
  3. לוחצים על Application type> Chrome Extension.
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה 'מזהה פריט', מזינים את מחרוזת המזהה הייחודית של האפליקציה, באורך 32 תווים. אפשר למצוא את ערך המזהה הזה בכתובת ה-URL של האפליקציה בחנות האינטרנט של Chrome ובמרכז השליטה למפתחים של חנות האינטרנט של Chrome.
  6. לוחצים על יצירה.

    פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.

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

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

  2. לוחצים על Create Client.
  3. לוחצים על Application type> Desktop app.
  4. בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. לוחצים על Create.

    פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.

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

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

  2. לוחצים על Create Client.
  3. לוחצים על Application type> TVs & Limited Input devices.
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. לוחצים על Create.

    פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.

Universal Windows Platform (UWP)‎

  1. במסוף Google Cloud, עוברים אל תפריט > Google Auth platform > Clients.

    מעבר לדף 'לקוחות'

  2. לוחצים על Create Client.
  3. לוחצים על Application type> Universal Windows Platform (UWP).
  4. בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
  5. בשדה 'מזהה החנות', מזינים את הערך של מזהה האפליקציה הייחודי בן 12 התווים בחנות Microsoft Store. אפשר למצוא את המזהה הזה בכתובת ה-URL של האפליקציה ב-Microsoft Store ובמרכז השותפים.
  6. לוחצים על יצירה.

    פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.

הורדת קובץ JSON של סוד הלקוח

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

  1. במסוף Google Cloud, לוחצים על סמל התפריט > APIs & Services> Credentials.

    כניסה לדף Credentials

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

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

  4. שומרים את הקובץ בפורמט credentials.json.

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

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

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

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

מסוף Google Cloud

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

    מעבר אל 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. בדף של הנושא, עוברים לחלונית הצדדית ופותחים את הכרטיסייה הרשאות.
    2. לוחצים על Add Principal (הוספת גורם ראשי).
    3. בשדה Add principals, מוסיפים את חשבון השירות של אפליקציית Google Workspace שמעבירה אירועים למינוי שלכם:
      1. לאירועים ב-Chat, chat-api-push@system.gserviceaccount.com.
      2. גרסת Developer Preview:: לאירועים ב-Drive, drive-api-event-push@system.gserviceaccount.com.
      3. לאירועים ב-Meet, meet-api-event-push@system.gserviceaccount.com.
    4. בתפריט הקצאת תפקידים, בוחרים באפשרות Pub/Sub Publisher.
    5. לוחצים על שמירה. יכול להיות שיחלפו כמה דקות עד שההרשאות בנושא יתעדכנו.

gcloud

  1. בפרויקט בענן, יוצרים נושא על ידי הרצת הפקודה הבאה:

    gcloud pubsub topics create TOPIC_ID

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

    בפלט מוצג השם המלא של הנושא, בתבנית projects/PROJECT_ID/topics/TOPIC_ID. חשוב לשים לב לשם, ולוודא שהערך של PROJECT_ID הוא מזהה פרויקט הענן של האפליקציה. תשתמשו בשם הנושא בשלב הבא, וגם כדי ליצור את המינוי ל-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.
      • תצוגה מקדימה למפתחים: כדי לקבל אירועים מ-Drive, צריך להשתמש ב-drive-api-event-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 הוא המזהה ב שם המשאב של משאב Chat API space. אפשר לאתר את המזהה בכתובת ה-URL של המרחב או באמצעות ה-method‏ spaces.list().

משתמש Chat או אפליקציית Chat שמאשרים את המינוי צריכים להיות חברים בחלל באמצעות חשבון Google Workspace או חשבון Google. תמיכה:
כל המרחבים של משתמש

//chat.googleapis.com/spaces/-

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

//cloudidentity.googleapis.com/users/USER

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

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

זיהוי משאב יעד ב-Drive

משאב היעד אופן הלימוד מגבלות (אם רלוונטי)
קובץ //drive.googleapis.com/files/FILE

כאשר FILE הוא המזהה ב שם המשאב של משאב files ב-Drive API. אפשר לאתר אותו בכתובת ה-URL של הקובץ או באמצעות ה-method‏ files.list.

למשתמש שמאשר את המינוי צריכה להיות הרשאה בקובץ במסגרת המינוי ביחס לאירוע המינוי.
אחסון שיתופי //drive.googleapis.com/drives/DRIVE

כאשר DRIVE הוא המזהה ב שם המשאב של משאב drives ב-Drive API. אפשר לאתר את המזהה בכתובת ה-URL של Drive או באמצעות method‏ drives.list.

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

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

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

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

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

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

המנוי מקבל אירועים לגבי כל המרחבים לפגישות שבהם המשתמש הוא הבעלים של המרחב לפגישות. בדרך כלל, הבעלים של חדר הפגישות הוא גם המארגן של האירוע ביומן 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('credentials.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

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

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

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

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

מסוף Google Cloud

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

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

    מעבר אל 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/PROJECT_ID/subscriptions/SUBSCRIPTION_ID.
    • MESSAGE_COUNT: המספר המקסימלי של הודעות Pub/Sub שרוצים לשלוף.

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

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

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

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

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

הרשמה לאירועים במרחב ב-Chat כאפליקציית Google Chat

אתם יכולים להירשם לאירועים ב-Chat בתור אפליקציית Chat ממרחב שבו יש לאפליקציית Chat חברות. אפליקציות ל-Chat לא יכולות להירשם לאירועים של משתמשים.

יצירה של מפתח API

כדי לקרוא ל-method של API בגרסת טרום-השקה למפתחים, צריך להשתמש בגרסת טרום-השקה למפתחים של מסמך גילוי ה-API שאינה ציבורית. כדי לאמת את הבקשה, צריך להעביר מפתח API.

כדי ליצור את מפתח ה-API, פותחים את פרויקט Google Cloud של האפליקציה ומבצעים את הפעולות הבאות:

  1. במסוף Google Cloud, לוחצים על סמל התפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create credentials > API key.
  3. מפתח ה-API החדש מוצג.
    • לוחצים על סמל ההעתקה כדי להעתיק את מפתח ה-API לשימוש בקוד של האפליקציה. מפתח ה-API מופיע גם בקטע API Keys (מפתחות API) בפרטי הכניסה של הפרויקט.
    • כדי למנוע שימוש לא מורשה, מומלץ להגביל את המקומות שבהם אפשר להשתמש במפתח ה-API ואת ממשקי ה-API שאפשר להשתמש בו עבורם. פרטים נוספים זמינים במאמר בנושא הוספת הגבלות על ממשקי API.

כתיבת סקריפט שקורא ל-Google Workspace Events API

כך יוצרים מינוי לאירועים במרחב ב-Chat עם אימות אפליקציות ואישור אדמין:

  1. אם צריך, מפתחים אפליקציה ל-Chat.
  2. להירשם למשאב ב-Chat, אבל:

    1. במקום אימות משתמש, מבצעים אימות כאפליקציית Chat באמצעות אישור חד-פעמי של האדמין.
    2. מציינים היקפי הרשאות שמאפשרים לאפליקציה ל-Chat להירשם לאירועים ב-Chat. היקפי ההרשאות האלה תמיד מתחילים ב-chat.app וכוללים את ההרשאות הבאות:

      • https://www.googleapis.com/auth/chat.app.memberships: הרשמה לאירועים של חברים במרחב ב-Chat.
      • https://www.googleapis.com/auth/chat.app.messages.readonly: הרשמה לאירועים של הודעות ותגובות במרחב ב-Chat.
      • https://www.googleapis.com/auth/chat.app.spaces: הרשמה לאירועים במרחב ב-Chat.

בדוגמה הבאה של קוד מוצגת הרשמה לאירועי הודעות במרחב ספציפי ב-Chat:

Python

  """Create subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # The Google Workspace resource to monitor for events.
  TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'

  # The types of events to receive.
  EVENT_TYPES = [
                  'google.workspace.chat.message.v1.created',
                  'google.workspace.chat.message.v1.updated',
                  'google.workspace.chat.message.v1.deleted',
                ]

  # 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',
      'v1beta',
      credentials=CREDENTIALS,
      discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
  )

  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)

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

  • SPACE_ID: שם המרחב, שאפשר לקבל באמצעות השיטה spaces.list ב-Chat API, או מכתובת ה-URL של המרחב.
  • TOPIC_NAME: השם המלא של נושא ה-Pub/Sub שיצרתם בפרויקט Cloud. הפורמט הוא projects/PROJECT_ID/topics/TOPIC_ID.
  • API_KEY: מפתח ה-API שיצרתם כדי לבנות את נקודת הקצה של השירות עבור Google Workspace Events API.
  • RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים במטען הייעודי (payload):

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