בדף הזה מוסבר איך להשתמש ב-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 ונרשמים אליו. המסמך הזה משמש כנקודת קצה (endpoint) לקבלת אירועים מ-Google Workspace.
- מפעילים את השיטה
createשל Google Workspace Events API במשאבSubscription. - בודקים את המינוי ל-Google Workspace כדי לוודא שהנושא ב-Pub/Sub מקבל את האירועים שנרשמתם אליהם.
- אם רוצים, אפשר להגדיר איך להעביר אירועים לנקודת קצה (endpoint) באפליקציה, כדי שהאפליקציה תוכל לעבד את האירוע וליצור קמפיינים במקרה הצורך.
דרישות מוקדמות
Apps Script
- כדי להשתמש בפקודות של Google Cloud CLI במדריך הזה:
- מתקינים את Google Cloud CLI.
- כדי
לאתחל את ה-CLI של
gcloud, מריצים את הקוד הבא:
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 בפרויקט בענן ולהגדיר את השדות App name, Avatar URL ו-Description. פרטים נוספים זמינים במאמר פיתוח אפליקציה ל-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.
- כדי
לאתחל את ה-CLI של
gcloud, מריצים את הקוד הבא:
gcloud init
- פרויקט ב-Google Cloud שהחיוב מופעל בו. כדי להירשם ל-Chat, צריך גם להפעיל את Chat API בפרויקט בענן ולהגדיר את השדות App name, Avatar URL ו-Description. פרטים נוספים זמינים במאמר פיתוח אפליקציה ל-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 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 Cloud, פותחים את התפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Web application.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- מוסיפים מזהי URI מורשים שקשורים לאפליקציה:
- אפליקציות בצד הלקוח (JavaScript) – בקטע מקורות מורשים של JavaScript, לוחצים על הוספת URI. אחר כך מזינים את ה-URI שבו רוצים להשתמש לבקשות מהדפדפן. השדה הזה מזהה את הדומיינים שמהם האפליקציה יכולה לשלוח בקשות API לשרת OAuth 2.0.
- אפליקציות בצד השרת (Java, Python ועוד) – בקטע Authorized redirect URIs, לוחצים על Add URI. אחר כך מזינים את ה-URI של נקודת הקצה שאליו שרת OAuth 2.0 יכול לשלוח תגובות.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
שימו לב שסודות לקוח לא משמשים לאפליקציות אינטרנט.
Android
- במסוף Google Cloud, פותחים את התפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Android.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- בשדה שם החבילה, מזינים את שם החבילה מקובץ ה-
AndroidManifest.xml. - בשדה SHA-1 certificate fingerprint, מזינים את טביעת האצבע לאישור SHA-1 שנוצרה.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
iOS
- במסוף Google Cloud, פותחים את התפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > iOS.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- בשדה מזהה החבילה, מזינים את מזהה החבילה כפי שהוא מופיע בקובץ
Info.plistשל האפליקציה. - אופציונלי: אם האפליקציה מופיעה ב-App Store של אפל, מזינים את המזהה של App Store.
- אופציונלי: בשדה מזהה צוות, מזינים את המחרוזת הייחודית בת 10 התווים שנוצרה על ידי אפל והוקצתה לצוות שלכם.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
אפליקציית Chrome
- במסוף Google Cloud, פותחים את התפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > תוסף ל-Chrome.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- בשדה מזהה פריט, מזינים את מחרוזת המזהה הייחודית של האפליקציה, שמורכבת מ-32 תווים. ערך המזהה הזה מופיע בכתובת ה-URL של האפליקציה בחנות האינטרנט של Chrome ובמרכז השליטה למפתחים בחנות האינטרנט של Chrome.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
אפליקציה לשולחן העבודה
- במסוף Google Cloud, פותחים את התפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Desktop app.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
טלוויזיות ומכשירים מוגבלים לקליטת נתונים
- במסוף Google Cloud, פותחים את התפריט > Google Auth platform > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > TVs and Limited Input devices.
- בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
Universal Windows Platform (UWP)
- ב-Google API Console, נכנסים לתפריט > > Clients.
- לוחצים על Create Client.
- לוחצים על Application type > Universal Windows Platform (UWP).
- בשדה "שם", מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
- בשדה "מזהה החנות", מזינים את הערך הייחודי של מזהה האפליקציה ב-Microsoft Store, שמורכב מ-12 תווים. המזהה הזה מופיע בכתובת ה-URL של האפליקציה ב-Microsoft Store וב-Partner Center.
- אופציונלי: אם האפליקציה היא סוכן AI שמבצע פעולות בשם המשתמשים, בוחרים באפשרות שימוש בלקוח הזה לסוכן מבוסס-AI. אם האפליקציה תומכת גם בתהליכי עבודה של סוכני AI וגם בתכונות רגילות למשתמשים, צריך ליצור לקוחות OAuth נפרדים לכל אחד מהם. אי אפשר לשנות את ההגדרה הזו אחרי שיוצרים את הלקוח.
- לוחצים על יצירה.
פרטי הכניסה החדשים שנוצרו מופיעים בקטע OAuth 2.0 Client IDs.
הורדת קובץ ה-JSON של סוד הלקוח
קובץ סוד הלקוח הוא ייצוג בפורמט JSON של פרטי הכניסה של מזהה הלקוח ב-OAuth, שהאפליקציה יכולה להפנות אליהם כשהיא מספקת פרטי כניסה.
ב-Google API Console, נכנסים לתפריט > APIs & Services > Credentials.
בקטע OAuth 2.0 Client IDs, לוחצים על מזהה הלקוח שיצרתם.
לוחצים על הורדת קובץ 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 בנושא שלכם:
- בדף של הנושא, עוברים לחלונית הצדדית ופותחים את הכרטיסייה Permissions.
- לוחצים על Add Principal.
- בשדה Add principals, מוסיפים את חשבון השירות של אפליקציית 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.
- לאירועים ב-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-api-push@system.gserviceaccount.com. איך יוצרים אפליקציה ל-Google Chat שמשתמשת ב-Pub/Sub
- כדי לקבל אירועים מ-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 שמאשרים את המינוי חייבים להיות חברים במרחב המשותף דרך חשבון Google או חשבון Google Workspace שלהם. תמיכה: |
| כל המרחבים של משתמש מסוים |
|
המינוי מקבל רק אירועים מהמרחבים שבהם המשתמש חבר באמצעות חשבון Google Workspace או חשבון Google שלו. תומך רק באימות משתמשים. |
| משתמש |
כאשר USER הוא המזהה ב
שם המשאב של המשאב |
המינוי מקבל רק אירועים שקשורים למשתמש שאישר את המינוי. משתמש לא יכול לאשר מינוי בשם משתמשים אחרים. תומך רק באימות משתמשים. |
| לקוח |
כאשר CUSTOMER הוא מספר הלקוח. אפשר גם להשתמש בכינוי |
המינוי מקבל אירועים מכל המרחבים והמשתמשים שמנוהלים על ידי הדומיין של הלקוח. תומך רק באימות אפליקציה עם אישור אדמין. |
זיהוי משאב המטרה ב-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: אפשרויות לקביעת כמות נתוני המשאבים שייכללו במטען הייעודי (payload) של האירוע. ההגדרה הזו משפיעה על מועד התפוגה של המינוי. מידע נוסף על נתוני אירועים
כדי ליצור מינוי ל-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
Google Workspace Events API מחזיר פעולה ממושכת שהושלמה, שמכילה את המופע של המשאב 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 לסוג מסירה בדחיפה, כדי שהאפליקציה תוכל לקבל אירועים ישירות לנקודת קצה של האפליקציה.
במסמכי התיעוד של Pub/Sub מוסבר איך מגדירים מינוי ל-Pub/Sub.
איך נרשמים לאירועים במרחבים משותפים ב-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',
'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)
מחליפים את מה שכתוב בשדות הבאים:
SPACE_ID: שם המרחב המשותף, שאפשר לקבל באמצעות ה-methodspaces.listב-Chat API או מכתובת ה-URL של המרחב המשותף.-
TOPIC_NAME: השם המלא של נושא Pub/Sub שיצרתם בפרויקט בענן. בפורמטprojects/PROJECT_ID/topics/TOPIC_ID.
RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים במטען הייעודי (payload):-
True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שייכללו, מוסיפים את השדהfieldMaskומציינים לפחות שדה אחד למשאב שהשתנה. רק מינויים למשאבים ב-Chat תומכים בהכללת נתוני משאבים. -
False: לא כולל נתוני משאבים.
-
הרשמה לכל האירועים ב-Chat בארגון ב-Google Workspace כאפליקציה ל-Google Chat
מינוי של לקוח מאפשר לאפליקציית Chat שלכם לעקוב אחרי אירועים במרחבים משותפים ואירועים של משתמשים בכל הארגון ב-Google Workspace.
במאמר מגבלות והתנהגויות של שליחת אירועים במינויים של לקוחות מוסבר איך אירועים נשלחים במינויים של לקוחות, כולל שליחת אירועים במרחבים שמנוהלים על ידי ארגונים חיצוניים.
דרישות ומגבלות
- אימות: אימות כאפליקציה ל-Chat עם אישור חד-פעמי של אדמין
- SKU: לארגון ב-Google Workspace צריך להיות לפחות רישיון אחד למק"ט של Enterprise.
- ייחודיות: אפליקציה ל-Chat יכולה ליצור רק מינוי אחד של לקוח לארגון נתון ב-Google Workspace. לארגון ב-Google Workspace יכולים להיות עד חמישה מינויים של לקוחות בסך הכול (שנוצרו על ידי אפליקציות שונות ל-Chat).
- היקפי הרשאות: נדרש אחד או יותר מהיקפי ההרשאות הבאים, בהתאם לסוגי האירועים שרוצים לקבל:
-
https://www.googleapis.com/auth/chat.app.all.spaces.readonly: כדי לקבל אירועים לגבי מרחבים משותפים. -
https://www.googleapis.com/auth/chat.app.all.memberships.readonly: כדי לקבל אירועים לגבי חברויות. -
https://www.googleapis.com/auth/chat.app.all.messages.readonly: כדי לקבל אירועים שקשורים להודעות ולתגובות באמוג'י. -
https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly: כדי לקבל אירועים על מצבי הקריאה של המשתמשים.
-
יצירת מינוי ללקוח
כדי ליצור מינוי של לקוח, צריך להפעיל את ה-method subscriptions.create.
דוגמת הקוד הבאה ב-Python יוצרת מינוי של לקוח:
Python
"""Create a customer subscription."""
from google.oauth2 import service_account
from apiclient.discovery import build
# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']
# Specify service account details.
CREDENTIALS = (
service_account.Credentials.from_service_account_file('credentials.json')
.with_scopes(SCOPES)
)
# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_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.
TOPIC = 'TOPIC_NAME'
# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
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)
מחליפים את מה שכתוב בשדות הבאים:
-
CUSTOMER_ID: מספר הלקוח. אפשר גם להשתמש בכינויmy_customerלארגון ב-Google Workspace של האפליקציה ל-Chat. -
TOPIC_NAME: השם המלא של נושא Pub/Sub שיצרתם בפרויקט בענן. הפורמט הואprojects/PROJECT_ID/topics/TOPIC_ID. -
RESOURCE_DATA: ערך בוליאני שמציין אם המינוי כולל נתוני משאבים במטען הייעודי (payload):-
True: כולל את כל נתוני המשאבים. כדי להגביל את השדות שייכללו, מוסיפים את השדהfieldMaskומציינים לפחות שדה אחד למשאב שהשתנה. רק מינויים למשאבים של Chat תומכים בהכללת נתוני משאבים. -
False: לא כולל נתוני משאבים.
-