בדף הזה מוסבר איך להשתמש ב-Google Workspace Events API כדי ליצור מינוי למשאב של Google Workspace. מינוי ל-Google Workspace מאפשר לאפליקציה לקבל מידע על אירועים ב-Google Workspace, שמייצגים שינויים במשאב של Google Workspace. בסקירה הכללית על Google Workspace Events API מפורטים המשאבים וסוגי האירועים שנתמכים על ידי Google Workspace Events API.
בדף הזה מפורטים השלבים ליצירת מינוי ל-Google Workspace:
- מגדירים את הסביבה.
- יוצרים נושא ב-Google Cloud Pub/Sub ונרשמים אליו. השתמשו במסמך הזה כנקודת קצה לקבלת אירועים מ-Google Workspace.
- מבצעים קריאה לשיטה
createשל ממשק Google Workspace Events API במשאבSubscription. - בודקים את המינוי ל-Google Workspace כדי לוודא שהנושא ב-Pub/Sub מקבל אירועים שנרשמתם אליהם.
- אפשר גם להגדיר איך לשלוח אירועים לנקודת קצה באפליקציה, כדי שהאפליקציה תוכל לעבד את האירוע ולבצע פעולה אם צריך.
דרישות מוקדמות
Apps Script
- כדי להשתמש בפקודות של Google Cloud CLI במדריך הזה:
- מתקינים את Google Cloud CLI.
- כדי
לאתחל את
gcloudCLI, מריצים את הקוד הבא:
gcloud init
- פרויקט Apps Script:
- אפשר להשתמש בפרויקט Google Cloud במקום בפרויקט ברירת המחדל שנוצר אוטומטית על ידי Apps Script.
- לכל היקפי ההרשאות שהוספתם כדי להגדיר את מסך ההסכמה ל-OAuth, אתם צריכים להוסיף את היקפי ההרשאות גם לקובץ
appsscript.jsonבפרויקט Apps Script. לדוגמה, אם ציינתם את ההיקףchat.messages, צריך להוסיף את הפרטים הבאים: - מפעילים
את השירות המתקדם
Google Workspace Events.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
- פרויקט ב-Google Cloud שהחיוב בו מופעל. אם אתם נרשמים למינוי ל-Chat, אתם צריכים גם להפעיל את Chat API בפרויקט בענן שלכם ולהגדיר את השדות שם האפליקציה, כתובת ה-URL של האווטאר ותיאור. פרטים נוספים זמינים במאמר בנושא יצירת אפליקציה ל-Google Chat.
-
נדרש אימות והיקף הרשאות מתאים לכל סוג אירוע במינוי:
- בדרך כלל נדרש אימות משתמש באמצעות מסך ההסכמה ל-OAuth שהוגדר לאפליקציה. כשמגדירים את מסך ההסכמה, צריך לציין היקף הרשאות כדי לתמוך בכל סוג אירוע של המינוי. כדי להגדיר את מסך ההסכמה ולזהות את היקפי ההרשאות הנדרשים, אפשר לעיין במאמר בנושא בחירת היקפי הרשאות.
- כדי להירשם לאירוע ב-Chat כאפליקציה ל-Chat, צריך אימות של האפליקציה עם אישור חד-פעמי של האדמין.
Python
- Python 3.6 ואילך
- הכלי לניהול חבילות pip
- ספריות הלקוח העדכניות של Google ל-Python. כדי להתקין או לעדכן אותם, מריצים את הפקודה הבאה בממשק שורת הפקודה:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- כדי להשתמש בפקודות של Google Cloud CLI במדריך הזה:
- מתקינים את Google Cloud CLI.
- כדי
לאתחל את
gcloudCLI, מריצים את הקוד הבא:
gcloud init
- פרויקט ב-Google Cloud שהחיוב בו מופעל. אם אתם נרשמים למינוי ל-Chat, אתם צריכים גם להפעיל את Chat API בפרויקט בענן שלכם ולהגדיר את השדות שם האפליקציה, כתובת ה-URL של האווטאר ותיאור. פרטים נוספים זמינים במאמר בנושא יצירת אפליקציה ל-Google Chat.
-
נדרש אימות והיקף הרשאות מתאים לכל סוג אירוע במינוי:
- בדרך כלל נדרש אימות משתמש באמצעות מסך ההסכמה ל-OAuth שהוגדר לאפליקציה. כשמגדירים את מסך ההסכמה, צריך לציין היקף הרשאות כדי לתמוך בכל סוג אירוע של המינוי. כדי להגדיר את מסך ההסכמה ולזהות את היקפי ההרשאות הנדרשים, אפשר לעיין במאמר בנושא בחירת היקפי הרשאות.
- כדי להירשם לאירוע ב-Chat כאפליקציה ל-Chat, צריך אימות של האפליקציה עם אישור חד-פעמי של האדמין.
הגדרת הסביבה
בקטע הבא מוסבר איך להגדיר את הסביבה לפני שיוצרים מינוי ל-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:
gcloud
בספריית העבודה, נכנסים לחשבון Google:
gcloud auth loginמגדירים את הפרויקט לפרויקט בענן של האפליקציה:
gcloud config set project PROJECT_IDמחליפים את
PROJECT_IDבמזהה הפרויקט של פרויקט הענן של האפליקציה.מפעילים את Google Workspace Events API ואת Google Cloud Pub/Sub API:
gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com
יצירת פרטי כניסה של מזהה לקוח ב-OAuth
בוחרים את סוג האפליקציה כדי לקבל הוראות ספציפיות ליצירת מזהה לקוח OAuth:
אפליקציית אינטרנט
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Web application.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- מוסיפים מזהי URI מורשים שקשורים לאפליקציה:
- אפליקציות בצד הלקוח (JavaScript) – בקטע מקורות מורשים של JavaScript, לוחצים על הוספת URI. לאחר מכן, מזינים URI לשימוש בבקשות של הדפדפן. הפרמטר הזה מזהה את הדומיינים שמהם האפליקציה יכולה לשלוח בקשות API לשרת OAuth 2.0.
- אפליקציות בצד השרת (Java, Python ועוד) – בקטע מזהי URI מורשים להפניה אוטומטית, לוחצים על הוספת URI. לאחר מכן, מזינים URI של נקודת קצה שאליה שרת OAuth 2.0 יכול לשלוח תגובות.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע מזהי לקוח ב-OAuth 2.0.
חשוב לזכור את מזהה הלקוח. סודות לקוח לא משמשים לאפליקציות אינטרנט.
Android
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Android.
- בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- בשדה 'שם החבילה', מזינים את שם החבילה מקובץ
AndroidManifest.xml. - בשדה 'טביעת אצבע לאישור SHA-1', מזינים את טביעת האצבע לאישור SHA-1 שנוצרה.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
iOS
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > iOS.
- בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- בשדה 'מזהה חבילה', מזינים את מזהה החבילה כפי שרשום בקובץ
Info.plistשל האפליקציה. - אופציונלי: אם האפליקציה מופיעה ב-App Store של אפל, מזינים את מזהה האפליקציה ב-App Store.
- אופציונלי: בשדה Team ID (מזהה צוות), מזינים את המחרוזת הייחודית בת 10 התווים שנוצרת על ידי אפל ומוקצית לצוות שלכם.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
אפליקציית Chrome
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Chrome Extension.
- בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- בשדה 'מזהה פריט', מזינים את מחרוזת המזהה הייחודית של האפליקציה, באורך 32 תווים. אפשר למצוא את ערך המזהה הזה בכתובת ה-URL של האפליקציה בחנות האינטרנט של Chrome ובמרכז השליטה למפתחים בחנות האינטרנט של Chrome.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
אפליקציה לשולחן העבודה
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Desktop app.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
טלוויזיות והתקני קלט עם הגבלות
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > TVs & Limited Input devices.
- בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
Universal Windows Platform (UWP)
- ב-Google API Console, עוברים אל תפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Universal Windows Platform (UWP).
- בשדה 'שם', מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- בשדה 'מזהה החנות', מזינים את הערך של מזהה האפליקציה הייחודי בן 12 התווים בחנות Microsoft Store. אפשר למצוא את המזהה הזה בכתובת ה-URL של האפליקציה ב-Microsoft Store ובמרכז השותפים.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
הורדת קובץ ה-JSON של סוד הלקוח
קובץ סוד הלקוח הוא ייצוג JSON של פרטי הכניסה של מזהה לקוח OAuth שאפליקציה יכולה להפנות אליהם כשמספקים פרטי כניסה.
במסוף Google API, נכנסים לתפריט > APIs & Services > Credentials.
בקטע OAuth 2.0 Client IDs (מזהי לקוחות ב-OAuth 2.0), לוחצים על מזהה הלקוח שיצרתם.
לוחצים על הורדת קובץ JSON.
שומרים את הקובץ בפורמט
credentials.json.
יצירה של נושא Pub/Sub והרשמה אליו
בקטע הזה יוצרים נושא Pub/Sub ומינוי לנושא. נושא ה-Pub/Sub שלכם משמש כנקודת הקצה של ההתראות, שבה המינוי שלכם ל-Google Workspace מקבל אירועים.
מידע נוסף על יצירה וניהול של נושאים ב-Pub/Sub זמין במסמכי התיעוד של Pub/Sub.
כדי ליצור נושא Pub/Sub ולהירשם אליו:
Google API Console
ב-Google API Console, עוברים לדף Pub/Sub:
מוודאים שהפרויקט בענן של האפליקציה נבחר.
לוחצים על Create topic (יצירת נושא) ומבצעים את הפעולות הבאות:
- מזינים שם לנושא, למשל
workspace-events-topic. - משאירים את האפשרות הוספת מינוי שמוגדר כברירת מחדל מסומנת. שם המינוי שמוגדר כברירת מחדל ב-Pub/Sub דומה לשם הנושא, למשל
workspace-events-topic-sub. - אופציונלי: אפשר לעדכן או להגדיר מאפיינים נוספים לנושא.
- מזינים שם לנושא, למשל
לוחצים על יצירה. הפורמט של שם הנושא המלא הוא
projects/PROJECT_ID/topics/TOPIC_ID. תצטרכו להשתמש בשם המלא הזה בשלב מאוחר יותר.נותנים גישה לפרסום הודעות ב-Pub/Sub בנושא:
- בדף של הנושא, עוברים לחלונית הצדדית ופותחים את הכרטיסייה הרשאות.
- לוחצים על Add Principal (הוספת גורם ראשי).
- בשדה Add principals, מוסיפים את חשבון השירות של אפליקציית Google Workspace שמעבירה אירועים למינוי שלכם:
- לאירועים ב-Chat:
- אם אפליקציית Chat היא תוסף ל-Google Workspace שמרחיב את Chat, צריך להשתמש באימייל של חשבון השירות בדף ההגדרה של Chat API. מידע נוסף זמין במאמר יצירת אפליקציה ל-Google Chat שמשתמשת ב-Pub/Sub.
- אם אפליקציית Chat שלכם משתמשת באירועי אינטראקציה של Chat API, צריך להשתמש ב-
chat-api-push@system.gserviceaccount.com.
- תצוגה מקדימה למפתחים:: לאירועים ב-Drive,
drive-api-event-push@system.gserviceaccount.com. - לאירועים ב-Meet,
meet-api-event-push@system.gserviceaccount.com.
- לאירועים ב-Chat:
- בתפריט הקצאת תפקידים, בוחרים באפשרות
Pub/Sub Publisher. - לוחצים על שמירה. יכול להיות שיחלפו כמה דקות עד שההרשאות בנושא יתעדכנו.
gcloud
בפרויקט בענן, יוצרים נושא על ידי הרצת הפקודה הבאה:
gcloud pubsub topics create TOPIC_IDמחליפים את
TOPIC_IDבמזהה ייחודי לנושא, למשלworkspace-events-topic.הפלט מציג את השם המלא של הנושא, בתבנית
projects/PROJECT_ID/topics/TOPIC_ID. חשוב לשים לב לשם, ולוודא שהערך של PROJECT_ID הוא מזהה פרויקט הענן של האפליקציה. תצטרכו להשתמש בשם הנושא בשלב הבא, וגם כדי ליצור את המינוי ל-Google Workspace בהמשך.נותנים גישה לפרסום הודעות בנושא:
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 היא תוסף ל-Google Workspace שמרחיב את Chat, צריך להשתמש באימייל של חשבון השירות בדף ההגדרה של Chat API. מידע נוסף זמין במאמר איך יוצרים אפליקציה ל-Google Chat שמשתמשת ב-Pub/Sub.
- אם אפליקציית Chat שלכם משתמשת באירועי אינטראקציה של Chat API, צריך להשתמש ב-
chat-api-push@system.gserviceaccount.com.
- תצוגה מקדימה למפתחים: כדי לקבל אירועים מ-Drive, צריך להשתמש ב-
drive-api-event-push@system.gserviceaccount.com. - כדי לקבל אירועים מ-Meet, צריך להשתמש ב-
meet-api-event-push@system.gserviceaccount.com.
- כדי לקבל אירועים מ-Chat, צריך להשתמש באחד מחשבונות השירות הבאים:
יכול להיות שיחלפו כמה דקות עד שההרשאות בנושא יתעדכנו.
יוצרים מינוי 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 של המינוי, בפורמט של שם המשאב המלא. לדוגמה, אם יש לכם מינוי למעקב אחרי מרחב ב-Chat (spaces/AAAABBBBBBB), הערך של targetResource הוא //chat.googleapis.com/spaces/AAAABBBBBBB.
זיהוי משאב יעד ל-Chat
| משאב היעד | אופן הלימוד | מגבלות |
|---|---|---|
| רווח |
כאשר SPACE הוא המזהה ב
שם המשאב של משאב Chat API |
משתמש Chat או אפליקציית Chat שמאשרים את המינוי צריכים להיות חברים בחלל באמצעות חשבון Google Workspace או חשבון Google. תמיכה: |
| כל המרחבים של משתמש |
|
המינוי מקבל רק אירועים של המרחבים שבהם המשתמש הוא חבר דרך חשבון Google Workspace או חשבון Google. תומך רק באימות משתמש. |
| משתמש |
כאשר USER הוא המזהה ב
שם המשאב של משאב Chat API |
המנוי מקבל רק אירועים שקשורים למשתמש שאישר את המנוי. משתמש לא יכול לאשר מינוי בשם משתמשים אחרים. תומך רק באימות משתמש. |
זיהוי משאב יעד ב-Drive
| משאב היעד | אופן הלימוד | מגבלות (אם רלוונטי) |
|---|---|---|
| קובץ |
//drive.googleapis.com/files/FILE
כאשר FILE הוא המזהה ב
שם המשאב
של משאב |
למשתמש שמאשר את המינוי צריכה להיות הרשאה בקובץ במסגרת המינוי ביחס לאירוע ההרשמה. |
| אחסון שיתופי |
//drive.googleapis.com/drives/DRIVE
כאשר DRIVE הוא המזהה ב שם המשאב של משאב |
המנוי מקבל רק אירועים שקשורים לפריטים בתיקייה המשותפת שבה המשתמש הוא חבר דרך חשבון Google Workspace או חשבון Google. |
זיהוי משאב יעד ל-Meet
| משאב היעד | אופן הלימוד | מגבלות (אם רלוונטי) |
|---|---|---|
| חלל לקיום פגישות | //meet.googleapis.com/spaces/SPACE
כאשר SPACE הוא המזהה ב
שם המשאב של משאב |
|
| משתמש | //cloudidentity.googleapis.com/users/USER
כאשר USER הוא המזהה בשדה |
המנוי מקבל אירועים לגבי כל המרחבים לפגישות שבהם המשתמש הוא הבעלים של המרחב לפגישות. בדרך כלל, הבעלים של חדר הפגישות הוא גם המארגן של האירוע ביומן 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
בפרויקט 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 שאליו נרשמתם, בפורמט של שם המשאב המלא. לדוגמה, כדי להירשם למרחב ב-Chat עם מזהה המרחבAAAABBBB, משתמשים ב-//chat.googleapis.com/spaces/AAAABBBB. -
EVENT_TYPES: סוג אירוע אחד או יותר שרוצים להירשם אליהם במשאב היעד. הפורמט צריך להיות מערך של מחרוזות, כמו'google.workspace.chat.message.v1.created'. -
TOPIC_NAME: השם המלא של נושא ה-Pub/Sub שיצרתם בפרויקט בענן. הפורמט הואprojects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים במטען הייעודי (payload):-
True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שייכללו, מוסיפים את השדהfieldMaskומציינים לפחות שדה אחד למשאב שהשתנה. רק מינויים למשאבי Chat תומכים בהכללת נתוני משאבים. -
False: לא כולל נתוני משאבים.
-
-
כדי ליצור את המינוי ל-Google Workspace, מריצים את הפונקציה
createSubscriptionבפרויקט Apps Script.
Python
בספריית העבודה, יוצרים קובץ בשם
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 שאליו נרשמתם, בפורמט של שם המשאב המלא. לדוגמה, כדי להירשם למרחב ב-Chat עם מזהה המרחבAAAABBBB, משתמשים ב-//chat.googleapis.com/spaces/AAAABBBB. -
EVENT_TYPES: סוג אירוע אחד או יותר שרוצים להירשם אליהם במשאב היעד. הפורמט צריך להיות מערך של מחרוזות, כמו'google.workspace.chat.message.v1.created'. -
TOPIC_NAME: השם המלא של נושא ה-Pub/Sub שיצרתם בפרויקט בענן. הפורמט הואprojects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים במטען הייעודי (payload):-
True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שייכללו, מוסיפים את השדהfieldMaskומציינים לפחות שדה אחד למשאב שהשתנה. רק מינויים למשאבי Chat תומכים בהכללת נתוני משאבים. -
False: לא כולל נתוני משאבים.
-
-
כדי ליצור את המינוי ל-Google Workspace, מריצים את הפקודה הבאה במסוף:
python3 create_subscription.py
ממשק ה-API של Google Workspace Events מחזיר פעולה ממושכת שהושלמה ומכילה את המופע של משאב Subscription שיצרתם.
בדיקת המינוי ל-Google Workspace
כדי לבדוק שאתם מקבלים אירועים מ-Google Workspace, אתם יכולים להפעיל אירוע ולשלוף הודעות למינוי Pub/Sub.
כדי לבדוק את המינוי ל-Google Workspace:
Google API Console
הפעלת סוג אחד או יותר של אירועים במשאב היעד של המינוי ל-Google Workspace. לדוגמה, אם נרשמתם לקבלת הודעות חדשות במרחב ב-Chat, פרסמו הודעה במרחב.
ב-Google API Console, עוברים לדף Pub/Sub:
מוודאים שהפרויקט בענן של האפליקציה נבחר.
בתפריט Pub/Sub, לוחצים על Subscriptions (מינויים).
בטבלה, מוצאים את המינוי ל-Pub/Sub של הנושא ולוחצים על שם המינוי.
לוחצים על הכרטיסייה הודעות.
לוחצים על Pull (משיכה). יכול להיות שיחלפו כמה דקות עד שאירוע ייצור הודעת Pub/Sub.
gcloud
הפעלת סוג אחד או יותר של אירועים במשאב היעד של המינוי ל-Google Workspace. לדוגמה, אם נרשמתם לקבלת הודעות חדשות במרחב ב-Chat, פרסמו הודעה במרחב.
מריצים את הפקודה הבאה:
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 לא יכולות להירשם לאירועים של משתמשים.
כתיבת סקריפט שקורא ל-Google Workspace Events API
כך יוצרים מינוי לאירועים במרחב ב-Chat עם אימות אפליקציות ואישור אדמין:
- אם צריך, מפתחים אפליקציה ל-Chat.
להירשם למשאב ב-Chat, אבל:
- במקום אימות משתמש, מבצעים אימות כאפליקציית Chat באמצעות אישור חד-פעמי של האדמין.
מציינים היקפי הרשאות שמאפשרים לאפליקציה ל-Chat להירשם לאירועים ב-Chat. היקפי ההרשאות האלה תמיד מתחילים ב-
chat.appוכוללים את ההיקפים הבאים:https://www.googleapis.com/auth/chat.app.memberships: הרשמה לאירועים של חברים במרחב ב-Chat.https://www.googleapis.com/auth/chat.app.memberships.readonly: הרשמה לאירועים של חברים במרחב ב-Chat.-
https://www.googleapis.com/auth/chat.app.messages.readonly: הרשמה לאירועים של הודעות ותגובות במרחב ב-Chat. https://www.googleapis.com/auth/chat.app.spaces: הרשמה לאירועים במרחב ב-Chat.https://www.googleapis.com/auth/chat.app.spaces.readonly: הרשמה לאירועים במרחב ב-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,
)
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 שיצרתם בפרויקט בענן. הפורמט הואprojects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים במטען הייעודי (payload):-
True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שייכללו, מוסיפים את השדהfieldMaskומציינים לפחות שדה אחד למשאב שהשתנה. רק מינויים למשאבי Chat תומכים בהכללת נתוני משאבים. -
False: לא כולל נתוני משאבים.
-