يوضّح هذا الدليل كيف يمكن لمشرف 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 لتحليلها. - البحث عن مدراء المساحات والتواصل معهم باستخدام طريقة
search()
، يمكنك استرداد قائمة بجميع المساحات في مؤسسة، ثم استخدام طريقةmembers.list()
لاسترداد قائمة بجميع أعضاء المساحة الذين لديهم دور "مدير". - البحث عن مساحات بدون مدراء محدّدين باستخدام طريقة
search()
، يمكنك استرداد قائمة بجميع المساحات في مؤسسة، ثم استخدام طريقةmembers.list()
لاسترداد قائمة بالمساحات التي لا تضم أي مديرين.
المتطلبات الأساسية
Python
- حساب Google Workspace من إصدار Business أو Enterprise مع إذن الوصول إلى Google Chat
- إعداد البيئة:
- أنشئ مشروعًا على Google Cloud.
- ضبط شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth
- فعِّل واجهة Google Chat API وأعِدّها باستخدام اسم ورمز ووصف لتطبيق Chat.
- ثبِّت مكتبة برامج Google API للغة Python.
-
أنشئ بيانات اعتماد معرِّف عميل OAuth لتطبيق على جهاز كمبيوتر. لتشغيل النموذج في هذا الدليل، احفظ بيانات الاعتماد كملف JSON باسم
credentials.json
في دليلك المحلي.
- اختَر نطاق تفويض يتيح مصادقة المستخدم.
- يجب أن تتوفّر لديك امتيازات المشرف المتعلقة بـ إدارة المحادثات في Chat وفي "المساحات" في مؤسستك على Google Workspace.
إجراء مكالمة باستخدام Google Chat API بصفتك مشرفًا
لإثبات هويتك كمستخدم لديه امتيازات المشرف، يجب تضمين ما يلي في طلبك:
- حدِّد نطاق تفويض يتيح استخدام مصادقة المستخدم مع امتيازات المشرف.
- اضبط الحقل
useAdminAccess
علىtrue
.
يعرض هذا القسم الأمثلة التالية على طلب بيانات من Chat API بصفتك مشرفًا:
- البحث عن مساحات من خلال استدعاء الطريقة
search()
- ابحث عن المساحات غير النشطة واحذفها في مؤسستك من خلال استدعاء طريقة
search()
لعرض قائمة بالمساحات غير النشطة، ثم استدعاء طريقةdelete()
لحذفها.
البحث عن مساحات في مؤسستك
يوضّح هذا المثال كيف يمكن لمشرفي Google Workspace استخدام طريقة
search()
في مورد Space
لواجهة برمجة التطبيقات Chat API للبحث عن مساحات في مؤسسة استنادًا إلى معايير محدّدة.
لاستدعاء طريقة 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)
في دليل العمل، أنشئ النموذج وشغِّله:
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".في دليل العمل، أنشئ النموذج وشغِّله:
python3 find_and_delete_inactive_spaces.py
مواضيع ذات صلة
- حذف المساحات
- إعداد قائمة بالأعضاء في مساحة
- إدارة مساحات Chat بصفتك مشرف Google Workspace
- طريقة
spaces.search()