במדריך הזה מוסבר איך אדמינים ב-Google Workspace יכולים להשתמש בשיטת search()
במשאב Space
של Google Chat API כדי לנהל מרחבים עם שמות בארגון שלהם ולבצע משימות אדמיניסטרטיביות.
אדמינים ב-Google Workspace יכולים להשתמש ב-Chat API רק כדי לנהל מרחבים עם שם, שהם SpaceType
של SPACE
. מרחבים משותפים עם שם הם מקומות קבועים שבהם אנשים יכולים לשלוח הודעות, לשתף קבצים ולעבוד יחד. אי אפשר להשתמש ב-Chat API כדי לנהל צ'אטים ישירים או צ'אטים קבוצתיים.
משאב Space
מייצג מקום שבו אנשים ואפליקציות ל-Chat יכולים לשלוח הודעות, לשתף קבצים ולשתף פעולה. יש כמה סוגים של מרחבים:
- צ'אטים ישירים הם שיחות בין שני משתמשים או בין משתמש לבין אפליקציית Chat.
- צ'אטים קבוצתיים הם שיחות בין שלושה משתמשים או יותר לבין אפליקציות ל-Chat.
- מרחבים משותפים עם שם הם מקומות קבועים שבהם אנשים יכולים לשלוח הודעות, לשתף קבצים ולעבוד יחד.
אדמינים ב-Google Workspace יכולים להשתמש ב-Chat API כדי לחפש ולנהל מרחבים עם שם בארגון שלהם בדרכים הבאות:
- ביקורת של מרחבים בארגון. באמצעות השיטה
search()
, אפשר לאחזר רשימה של כל המרחבים בארגון עם מידע מפורט על ההגדרות והמטא-נתונים של כל מרחב, כמו תאריך היצירה, תאריך הפעילות האחרונה, מספר החברים, הסטטוס של הגדרת ההיסטוריה והאפשרות להזמין אורחים חיצוניים. - איך למצוא ולמחוק מרחבים לא פעילים באמצעות השיטה
search()
, אפשר למצוא מרחבים שלא היו בשימוש מאז תאריך ושעה ספציפיים, ואז למחוק אותם. פרטים נוספים וקוד לדוגמה זמינים במאמר בנושא איתור ומחיקה של מרחבים לא פעילים. - ייצוא רשימה של מרחבים על סמך קריטריונים לחיפוש באמצעות השיטה
search()
, אפשר לאחזר רשימה של מרחבים שעומדים בקריטריונים שצוינו ב-query
ולייצא את התוצאות לקובץ CSV לצורך ניתוח. - איך מחפשים מנהלים של מרחבים ויוצרים איתם קשר באמצעות ה-method
search()
אפשר לאחזר רשימה של כל החללים בארגון, ואז להשתמש ב-methodmembers.list()
כדי לאחזר רשימה של כל החברים בחלל שיש להם הרשאות ניהול. - חיפוש מרחבים ללא מנהלים מוגדרים באמצעות ה-method
search()
אפשר לאחזר רשימה של כל המרחבים בארגון, ואז להשתמש ב-methodmembers.list()
כדי לאחזר רשימה של מרחבים שאין להם מנהלים.
דרישות מוקדמות
Python
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- מגדירים את הסביבה:
- יוצרים פרויקט ב-Google Cloud.
- הגדרת מסך ההסכמה של OAuth.
- מפעילים ומגדירים את Google Chat API עם שם, סמל ותיאור לאפליקציית Chat.
- מתקינים את ספריית הלקוח של Google API ל-Python.
-
יצירת פרטי כניסה של מזהה לקוח OAuth לאפליקציה למחשב. כדי להריץ את הדוגמה במדריך הזה, צריך לשמור את פרטי הכניסה כקובץ JSON בשם
credentials.json
בספרייה המקומית.
- בוחרים היקף הרשאה שתומך באימות משתמשים.
שליחת קריאה ל-Google Chat API כאדמין
כדי לבצע אימות כמשתמש עם הרשאות אדמין, צריך להעביר את הפרטים הבאים בבקשה:
- מציינים היקף הרשאות שתומך בשימוש באימות משתמש עם הרשאות אדמין.
- מגדירים את השדה
useAdminAccess
לערךtrue
.
בקטע הזה מוצגות הדוגמאות הבאות של קריאה ל-Chat API בתור אדמין:
- מחפשים מרחבים באמצעות הקריאה לשיטה
search()
. - כדי למצוא ולמחוק מרחבים לא פעילים בארגון, קוראים לשיטה
search()
כדי לקבל רשימה של מרחבים לא פעילים, ואז קוראים לשיטהdelete()
כדי למחוק אותם.
חיפוש מרחבים בארגון
בדוגמה הזו מוסבר איך אדמינים ב-Google Workspace יכולים להשתמש בשיטה search()
במשאב Space
של Chat API כדי לחפש מרחבים בארגון על סמך קריטריונים שצוינו.
כדי לבצע קריאה ל-method search()
עם אימות משתמש והרשאות אדמין, צריך לציין בבקשה את הפרטים הבאים:
- מציינים את היקף ההרשאות של
chat.admin.spaces
אוchat.admin.spaces.readonly
. - מציינים את
useAdminAccess=true
. - מציינים את פרמטרים החיפוש
query
כדי לסנן את התוצאות:-
customer = "customers/my_customer"
– שדה חובה, והערך הנתמך היחיד הואcustomers/my_customer
-
spaceType = "SPACE"
– חובה, והערך הנתמך היחיד הואSPACE
- אופציונלי: שאילתה אחת או יותר לסינון נוסף של החיפוש במרחב, כמו מילות מפתח בשמות לתצוגה (
displayName
), תאריך היצירה (createTime
) או לפי הפעילות במרחב (lastActiveTime
).
-
בדוגמת הקוד הבאה מוצג איך להשתמש בהרשאות אדמין כדי לחפש מרחבים עם שם מוצג שמכיל את המילים Hello ו-World, בכל שילוב:
Python
- בספריית העבודה, יוצרים קובץ בשם
search_spaces_for_hello_world.py
. מוסיפים את הקוד הבא אל
search_spaces_for_hello_world.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', ] def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer"' 'AND spaceType = "SPACE"' 'AND displayName:"Hello World"' ) pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No spaces found named Hello World.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' spaces found:') # Prints the list of spaces. print(spaces)
בספריית העבודה, מבצעים build ומריצים את הדוגמה:
python3 search_spaces_for_hello_world.py
איך למצוא ולמחוק מרחבים לא פעילים
בדוגמה הזו מוסבר איך אדמינים ב-Google Workspace יכולים להשתמש בשיטה search()
במשאב Space
של Chat API כדי למצוא מרחבים לא פעילים ואז למחוק אותם באמצעות השיטה delete()
עם הפרמטר useAdminAccess
.
מרחבים לא פעילים ב-Google Chat – כאלה שכבר לא נעשה בהם שימוש פעיל – יכולים לתפוס נפח אחסון יקר ערך ולגרום לעומס בממשק המשתמש. באמצעות שיטת search()
, אדמינים יכולים למצוא מרחבים שלא נעשה בהם שימוש מאז תאריך ושעה ספציפיים, למשל לפני חודשיים. אחרי שהרשימה של המרחבים המשותפים מוצגת, האדמינים יכולים לבצע בהם פעולות, כמו עדכון או מחיקה.
כדי לחפש רשימה של מרחבים לא פעילים ואז למחוק אותם באמצעות אימות משתמש והרשאות אדמין, צריך להעביר את הפרטים הבאים בבקשות:
- כדי לחפש מרחבים לא פעילים, מציינים את הפרטים הבאים:
- מציינים את היקף ההרשאות של
chat.admin.spaces
אוchat.admin.spaces.readonly
. - מפעילים את השיטה
search()
במשאבSpaces
. - מגדירים את
INACTIVE_SPACE_DEADLINE
לתאריך ולשעה של הפעילות האחרונה שקובעת את המקומות שיוחזרו. - מציינים את
useAdminAccess=true
. - מציינים את פרמטרים החיפוש
query
כדי לסנן את התוצאות:-
customer = "customers/my_customer"
– שדה חובה, והערך הנתמך היחיד הואcustomers/my_customer
-
spaceType = "SPACE"
– חובה, והערך הנתמך היחיד הואSPACE
-
lastActiveTime
– כדי לסנן את הבקשה כך שיוחזרו רק מרחבים לא פעילים, מציינים אתlastActiveTime
-
- מציינים את היקף ההרשאות של
- כדי למחוק את המרחבים הלא פעילים מתוצאות החיפוש, מציינים את הפרטים הבאים:
- מציינים את
chat.admin.delete
היקף ההרשאה. - מפעילים את השיטה
delete()
במשאבSpaces
. - מציינים את
useAdminAccess=true
.
- מציינים את
בדוגמה הבאה של קוד אפשר לראות איך מחפשים מרחבים לא פעילים ומוחקים אותם באמצעות הרשאות אדמין:
Python
בספריית העבודה, יוצרים קובץ בשם
find_and_delete_inactive_spaces.py
.מוסיפים את הקוד הבא אל
find_and_delete_inactive_spaces.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', 'https://www.googleapis.com/auth/chat.admin.delete', ] # Any spaces that have not been active since this time will be deleted. INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"' def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all inactive spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer" AND spaceType = "SPACE" AND' ' lastActiveTime < ' ) + INACTIVE_SPACE_DEADLINE, pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No inactive spaces found.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' inactive spaces found:') # Prints the list of inactive spaces. print(spaces) # Delete all inactive spaces. for space in spaces: ( chat.spaces() .delete( useAdminAccess=True, name=space['name'], ) .execute() ) print( 'Deleted space: ' + space['displayName'] + ', Resource Name: ' + space['name'] ) if __name__ == '__main__': main()
בקטע הקוד, מחליפים את
INACTIVE_DATE
בתאריך ובשעה בפורמט YYYY-MM-DDTHH:MM:SS+HH:MM. לדוגמה: "2024-06-01T00:00:00+00:00".בספריית העבודה, מבצעים build ומריצים את הדוגמה:
python3 find_and_delete_inactive_spaces.py
נושאים קשורים
- מחיקת מרחבים
- איך רואים את רשימת המשתתפים במרחבים
- ניהול מרחבים ב-Chat כאדמין ב-Google Workspace
spaces.search()
method