يوضّح هذا الدليل كيفية استخدام مشرف Google Workspace لطريقة
search()
في موارد
Space
من واجهة برمجة التطبيقات
Google Chat API لإدارة المساحات المُسمّاة في مؤسسته وتنفيذ المهام الإداريه.
بصفتك مشرفًا في Google Workspace، يمكنك استخدام Chat API
فقط لإدارة المساحات المُسمّاة، والتي يتم تعريفها على أنّها
SpaceType
من
SPACE
. المساحات المُسمّاة هي أماكن دائمة يرسل فيها المستخدمون الرسائل ويشاركون الملفات ويتعاونون معًا. لا يمكنك استخدام Chat API لإدارة
الرسائل المباشرة (DM)
أو المحادثات الجماعية.
يمثّل
مورد 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 باسم
client_secrets.json
في الدليل المحلي.
- اختَر نطاق تفويض يتيح مصادقة المستخدمين.
- يجب أن يكون لديك امتيازات المشرف لإدارة المحادثات في Chat وفي "المساحات" لمؤسستك على Google Workspace.
الاتصال بواجهة برمجة التطبيقات Google Chat API بصفتك مشرفًا
لتسجيل الدخول بصفتك مستخدمًا لديه امتيازات مشرف، يجب إدخال ما يلي في طلبك:
- حدِّد نطاق تفويض يسمح باستخدام مصادقة المستخدم مع امتيازات المشرف.
- اضبط حقل
useAdminAccess
علىtrue
.
يعرض هذا القسم الأمثلة التالية على طلب بيانات من Chat API بصفتك مشرفًا:
- ابحث عن المساحات من خلال طلب الإجراء
search()
. - العثور على المساحات غير النشطة وحذفها في
مؤسستك من خلال استدعاء الطريقة
search()
لمحاولة عرض قائمة بالمساحات التي لم تعد نشطة، ثم استدعاء الطريقةdelete()
لحذفها
البحث عن المساحات في مؤسستك
يوضّح هذا المثال كيفية استخدام مشرفي Google Workspace لطريقة
search()
في مورد Space
لواجهة برمجة تطبيقات Chat للبحث
عن المساحات في جميع أنحاء المؤسسة استنادًا إلى معايير محدّدة.
لاستدعاء طريقة search()
باستخدام
مصادقة المستخدم و
امتيازات المشرف،
يجب تحديد ما يلي في الطلب:
- حدِّد نطاق التفويض
chat.admin.spaces
أوchat.admin.spaces.readonly
. - حدِّد
useAdminAccess=true
. - حدِّد مَعلمات البحث
query
لفلترة النتائج:-
customer = "customers/my_customer"
: مطلوب، والقيمة الوحيدة المسموح بها هيcustomers/my_customer
-
spaceType = "SPACE"
- مطلوبة والقيمة الوحيدة المسموح بها هيSPACE
- طلب بحث إضافي واحد أو أكثر اختياريًا لفلترة عملية البحث في المساحة بشكل أكبر، مثل الكلمات الرئيسية في الأسماء المعروضة (
displayName
) أو تاريخ الإنشاء (createTime
) أو استنادًا إلى نشاط المساحة (lastActiveTime
).
-
يعرض الرمز البرمجي التالي مثالاً على كيفية استخدام امتيازات المشرف للبحث عن المساحات التي تحتوي على اسم معروض يتضمّن "مرحبًا" و "عالم"، بأي تركيبة:
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( 'client_secrets.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( 'client_secrets.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()