این راهنما توضیح میدهد که چگونه یک مدیر Google Workspace میتواند از متد search() روی یک منبع Space از Google Chat API برای مدیریت فضاهای نامگذاری شده در سراسر سازمان خود و انجام وظایف مدیریتی استفاده کند.
به عنوان مدیر Google Workspace، شما فقط میتوانید از Chat API برای مدیریت فضاهای نامگذاری شده استفاده کنید که به عنوان SpaceType از SPACE تعریف میشوند. فضاهای نامگذاری شده مکانهای پایداری هستند که افراد در آنها پیام ارسال میکنند، فایلها را به اشتراک میگذارند و همکاری میکنند. شما نمیتوانید از Chat API برای مدیریت پیامهای مستقیم (DM) یا چتهای گروهی استفاده کنید.
منبع Space مکانی را نشان میدهد که افراد و برنامههای چت میتوانند در آن پیام ارسال کنند، فایلها را به اشتراک بگذارند و با یکدیگر همکاری کنند. چندین نوع Space وجود دارد:
- پیامهای مستقیم (DM) مکالماتی بین دو کاربر یا یک کاربر و یک برنامه چت هستند.
- چتهای گروهی، مکالماتی بین سه یا چند کاربر و برنامههای چت هستند.
- فضاهای نامگذاری شده مکانهای پایداری هستند که افراد در آنها پیام میفرستند، فایلها را به اشتراک میگذارند و با یکدیگر همکاری میکنند.
به عنوان مدیر Google Workspace، میتوانید از Chat API برای جستجو و مدیریت فضاهای نامگذاری شده در سازمان خود به روشهای زیر استفاده کنید:
- فضاهای حسابرسی در سازمان. با استفاده از متد
search()، میتوانید فهرستی از تمام فضاهای یک سازمان را به همراه اطلاعات دقیقی در مورد تنظیمات و فرادادههای هر فضا مانند تاریخ ایجاد، تاریخ آخرین فعالیت، تعداد اعضا، وضعیت تنظیمات تاریخچه و قابلیت دعوت از مهمانان خارجی بازیابی کنید. - پیدا کردن و حذف فضاهای غیرفعال. با استفاده از متد
search()، میتوانید فضاهایی را که از یک تاریخ و زمان مشخص استفاده نشدهاند پیدا کرده و سپس آنها را حذف کنید. برای جزئیات بیشتر و نمونه کد، به بخش «یافتن و حذف فضاهای غیرفعال» مراجعه کنید. - فهرستی از فضاها را بر اساس معیارهای جستجو صادر کنید. با استفاده از متد
search()، میتوانید فهرستی از فضاهایی را که معیارهای مشخص شده درqueryرا برآورده میکنند، بازیابی کنید و نتایج را برای تجزیه و تحلیل به یک فایل CSV صادر کنید. - Find and contact space managers. Using the
search()method, you can retrieve a list of all spaces in an organization, then use themembers.list()method to retrieve a list of all space members that are managers. - فضاهایی را پیدا کنید که مدیر تعیینشده ندارند. با استفاده از متد
search()، میتوانید فهرستی از تمام فضاهای موجود در یک سازمان را بازیابی کنید، سپس از متدmembers.list()برای بازیابی فهرستی از فضاهایی که هیچ مدیری ندارند استفاده کنید.
پیشنیازها
پایتون
- یک حساب کاربری تجاری یا سازمانی Google Workspace با دسترسی به Google Chat .
- محیط خود را تنظیم کنید:
- یک پروژه گوگل کلود ایجاد کنید .
- صفحه رضایت OAuth را پیکربندی کنید .
- API چت گوگل را با نام، آیکون و توضیحات برای برنامه چت خود فعال و پیکربندی کنید .
- کتابخانه کلاینت API گوگل پایتون را نصب کنید.
- ایجاد اعتبارنامههای OAuth client ID برای یک برنامه دسکتاپ. برای اجرای نمونه در این راهنما، اعتبارنامهها را به عنوان یک فایل JSON با نام
credentials.jsonدر دایرکتوری محلی خود ذخیره کنید.
- یک محدوده مجوز انتخاب کنید که از احراز هویت کاربر پشتیبانی کند.
- شما باید برای سازمان Google Workspace خود، امتیازات مدیریتی مدیریت گفتگو و Spaces را داشته باشید.
به عنوان مدیر، API چت گوگل را فراخوانی کنید
برای احراز هویت به عنوان کاربری با امتیازات مدیر ، باید موارد زیر را در درخواست خود ارسال کنید:
- محدوده مجوزی را مشخص کنید که از استفاده از احراز هویت کاربر با امتیازات مدیر پشتیبانی کند.
- فیلد
useAdminAccessرا رویtrueتنظیم کنید.
این بخش مثالهای زیر از فراخوانی Chat API به عنوان مدیر را نشان میدهد:
- با فراخوانی متد
search()به دنبال فاصلهها بگردید . - با فراخوانی متد
search()برای بازگرداندن لیستی از فضاهای غیرفعال و سپس فراخوانی متدdelete()برای حذف آنها ، فضاهای غیرفعال را در سازمان خود پیدا و حذف کنید .
فضاهای خالی را در سراسر سازمان خود جستجو کنید
این مثال توضیح میدهد که چگونه مدیران Google Workspace میتوانند از متد search() در منبع Space از Chat API برای جستجوی فضاهای خالی در سراسر یک سازمان بر اساس معیارهای مشخص شده استفاده کنند.
To call the search() method with user authentication and administrator privileges , you must specify the following in the request:
- دامنه مجوز
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" به هر ترکیبی را نشان میدهد:
پایتون
- در دایرکتوری کاری خود، فایلی با نام
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)در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 search_spaces_for_hello_world.py
فضاهای غیرفعال را پیدا و حذف کنید
این مثال توضیح میدهد که چگونه مدیران Google Workspace میتوانند از متد search() روی منبع Space از Chat API برای یافتن فضاهای غیرفعال استفاده کنند و سپس آنها را با استفاده از متد delete() به همراه پارامتر useAdminAccess حذف کنند.
فضاهای غیرفعال چت گوگل - فضاهایی که دیگر به طور فعال استفاده نمیشوند - میتوانند فضای ذخیرهسازی ارزشمندی را اشغال کرده و باعث ایجاد بینظمی در رابط کاربری شوند. با استفاده از متد 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را مشخص کنید.
- دامنه مجوز
کد زیر نمونهای از نحوه جستجوی فضاهای غیرفعال و حذف آنها با استفاده از امتیازات مدیر را نشان میدهد:
پایتون
در دایرکتوری کاری خود، فایلی با نام
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".در دایرکتوری کاری خود، نمونه را بسازید و اجرا کنید:
python3 find_and_delete_inactive_spaces.py
مباحث مرتبط
- فاصلهها را حذف کنید
- اعضا را در یک فاصله فهرست کنید
- مدیریت فضاهای چت به عنوان مدیر Google Workspace
-
spaces.search()