במדריך הזה מוסבר איך להשתמש בשיטה list() במשאב SpaceEvent של Google Chat API כדי להציג רשימה של שינויים במשאבים במרחב.
SpaceEvent המשאב מייצג שינוי במרחב היעד, כולל משאבי צאצא של המרחב כמו הודעות, תגובות וחברות. מידע נוסף על רשימת סוגי האירועים ומטעני הנתונים של האירועים שנתמכים זמין בשדות eventType וpayload של מסמכי העזר בנושא משאב SpaceEvent.
אפשר לפרסם אירועים עד 28 ימים לפני מועד הבקשה. השרת מחזיר אירועים שמכילים את הגרסה העדכנית ביותר של המשאב המושפע.
לדוגמה, אם מפרטים אירועים לגבי חברים חדשים במרחב, השרת מחזיר משאבי Membership שמכילים את פרטי החברות העדכניים. אם חברים חדשים הוסרו במהלך התקופה המבוקשת, מטען הנתונים של האירוע מכיל משאב Membership ריק.
כדי להציג רשימה של אירועים במרחב, המשתמש המאומת או אפליקציית Chat צריכים להיות חברים במרחב.
דרישות מוקדמות
Node.js
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- מגדירים את הסביבה:
- יוצרים פרויקט ב-Google Cloud.
- הגדרת מסך ההסכמה ל-OAuth.
- מפעילים ומגדירים את Google Chat API עם שם, סמל ותיאור לאפליקציית Chat.
- מתקינים את ספריית הלקוח של Cloud ל-Node.js.
- יוצרים פרטי גישה בהתאם לאופן שבו רוצים לבצע אימות בבקשה של Google Chat API:
- כדי לבצע אימות כמשתמש ב-Chat, יוצרים פרטי כניסה של מזהה לקוח OAuth ושומרים אותם כקובץ JSON בשם
credentials.jsonבספרייה המקומית. - כדי לבצע אימות כאפליקציית Chat, יוצרים פרטי כניסה לחשבון שירות ושומרים אותם כקובץ JSON בשם
credentials.json.
- כדי לבצע אימות כמשתמש ב-Chat, יוצרים פרטי כניסה של מזהה לקוח OAuth ושומרים אותם כקובץ JSON בשם
- בוחרים היקף הרשאה בהתאם לאופן שבו רוצים לבצע אימות – כמשתמש או כאפליקציית Chat.
Python
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- מגדירים את הסביבה:
- יוצרים פרויקט ב-Google Cloud.
- הגדרת מסך ההסכמה ל-OAuth.
- מפעילים ומגדירים את Google Chat API עם שם, סמל ותיאור לאפליקציית Chat.
- מתקינים את ספריית הלקוח של Cloud לשימוש ב-Python.
- יוצרים פרטי גישה בהתאם לאופן שבו רוצים לבצע אימות בבקשה של Google Chat API:
- כדי לבצע אימות כמשתמש ב-Chat, יוצרים פרטי כניסה של מזהה לקוח OAuth ושומרים אותם כקובץ JSON בשם
credentials.jsonבספרייה המקומית. - כדי לבצע אימות כאפליקציית Chat, יוצרים פרטי כניסה לחשבון שירות ושומרים אותם כקובץ JSON בשם
credentials.json.
- כדי לבצע אימות כמשתמש ב-Chat, יוצרים פרטי כניסה של מזהה לקוח OAuth ושומרים אותם כקובץ JSON בשם
- בוחרים היקף הרשאה בהתאם לאופן שבו רוצים לבצע אימות – כמשתמש או כאפליקציית Chat.
רשימת אירועים במרחב (אימות משתמש)
כדי להציג רשימה של אירועים במרחב ב-Chat, מעבירים את הפרטים הבאים בבקשה:
צריך לציין היקף הרשאות אחד או יותר כדי לתמוך בכל סוג אירוע בבקשה. מומלץ לבחור את ההיקף הכי מצומצם שעדיין מאפשר לאפליקציה לפעול. במאמר סקירה כללית על אימות והרשאה מוסבר איך לבחור היקף.
מבצעים קריאה ל-method
ListSpaceEvents()ומעבירים אתfilterשל סוגי האירועים שרוצים להציג. צריך לציין לפחות סוג אירוע אחד, ואפשר גם לסנן לפי תאריך. רשימה של סוגי האירועים הנתמכים מופיעה במאמרי העזרה בנושא השדהeventTypeשל משאבSpaceEvent.
בדוגמה הבאה מפורטים אירועים שקשורים לחברות חדשות ולהודעות במרחב:
Node.js
כדי להריץ את הדוגמה הזו, מחליפים את SPACE_NAME במזהה מתוך name של המרחב.
אפשר לקבל את המזהה על ידי הפעלת השיטה ListSpaces() או מכתובת ה-URL של המרחב.
Chat API מחזיר רשימה של אירועים במרחב עם מספור עמודים לגבי חברויות והודעות חדשות.
רשימת אירועים במרחב (אימות באפליקציית Chat)
כדי לאמת אפליקציה, נדרש אישור אדמין חד-פעמי.
כדי להציג רשימה של אירועים במרחב עם אימות אפליקציה ועם Chat API בארכיטקטורת REST, צריך להעביר את הפרטים הבאים בבקשה:
- צריך לציין היקף הרשאות אחד או יותר כדי לתמוך בכל סוג אירוע בבקשה. מומלץ לבחור את ההיקף הכי מצומצם שעדיין מאפשר לאפליקציה לפעול. מידע נוסף על בחירת היקף זמין במאמר סקירה כללית על אימות והרשאה.
https://www.googleapis.com/auth/chat.app.membershipshttps://www.googleapis.com/auth/chat.app.memberships.readonlyhttps://www.googleapis.com/auth/chat.app.messages.readonlyhttps://www.googleapis.com/auth/chat.app.spaceshttps://www.googleapis.com/auth/chat.app.spaces.readonly
- מבצעים קריאה ל-
listmethod ב-spaceEventsresource. - מעבירים את
nameשל המרחב כדי להציג את רשימת ההודעות ממנו. - מעבירים
filterכדי לשלוח שאילתה לגבי סוגים ספציפיים של אירועים.
כתיבת סקריפט שקורא ל-Chat API
כך מפרטים אירועים במרחב באמצעות אימות אפליקציה ו-Chat API בארכיטקטורת REST:
Python
- בספריית העבודה, יוצרים קובץ בשם
chat_spaceevents_list_app.py. מוסיפים את הקוד הבא ב-
chat_spaceevents_list_app.py:from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # Set authorization scopes based on the # event type. For example, if you are getting a space event # about a new membership, use the `chat.app.memberships` scope. # # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.memberships", "https://www.googleapis.com/auth/chat.app.memberships.readonly", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/chat.app.spaces.readonly"] def main(): ''' Authenticates with Chat API using app authentication, then lists space events from a specified space. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().spaceEvents().list( # The space to list events from. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # A required filter. Filters events by event type. # # Update this filter to match your requirements. filter='eventTypes:"google.workspace.chat.message.v1.created"' ).execute() # Print Chat API's response in your command line interface. print(result) if __name__ == '__main__': main()בקוד, מחליפים את מה שכתוב בשדות הבאים:
-
SPACE_NAME: שם המרחב, שאפשר לקבל אותו באמצעות השיטהspaces.listב-Chat API או מכתובת ה-URL של המרחב.
-
בספריית העבודה, מפתחים ומריצים את הדוגמה:
python3 chat_spaceevents_list_app.py
Chat API מחזיר רשימה של אירועים במרחב עם מספור עמודים לגבי חברויות והודעות חדשות.