يوضّح هذا الدليل طريقة استخدام مورد list
على مورد Space
لواجهة برمجة تطبيقات Google Chat لإدراج المساحات. يؤدي سرد المساحات إلى عرض قائمة مقسّمة
إلى صفحات قابلة للتصفية.
يمثّل
المورد Space
مكانًا يمكن فيه للمستخدمين وتطبيقات Chat إرسال الرسائل
ومشاركة الملفات والتعاون. تتوفّر عدة أنواع من المساحات:
- الرسائل المباشرة هي محادثات بين مستخدمَين أو مستخدم وتطبيق في Chat.
- المحادثات الجماعية هي محادثات بين ثلاثة مستخدمين أو أكثر وتطبيقات Chat.
- المساحات المُسمّاة هي أماكن دائمة يمكن للمستخدمين من خلالها إرسال الرسائل ومشاركة الملفات والتعاون معًا.
عند إدراج المساحات باستخدام مصادقة التطبيق، يتم إدراج المساحات التي يمكن لتطبيق Chat الوصول إليها. إدراج المساحات التي تتضمّن مصادقة المستخدم المساحات التي يمكن للمستخدم الذي تمت مصادقته الوصول إليها
المتطلبات الأساسية
Python
- Python 3.6 أو أحدث
- إنّ أداة إدارة الحِزم pip
أحدث مكتبات عملاء Google للغة Python. لتثبيتها أو تحديثها، شغّل الأمر التالي في واجهة سطر الأوامر:
pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
- مشروع على Google Cloud تم فيه تفعيل Google Chat API وضبطه لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
تم ضبط التفويض لتطبيق Chat. تتوافق مساحات بيانات البيانات مع طريقتَي المصادقة التاليتَين:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.spaces.readonly
أوchat.spaces
. - مصادقة التطبيقات
باستخدام نطاق التفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
Node.js
- Node.js وnpm
أحدث مكتبات عملاء Google لنظام Node.js. ولتثبيتها، شغِّل الأمر التالي في واجهة سطر الأوامر:
npm install @google-cloud/local-auth @googleapis/chat
- مشروع على Google Cloud تم فيه تفعيل Google Chat API وضبطه لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إنشاء تطبيق Google Chat.
تم ضبط التفويض لتطبيق Chat. تتوافق مساحات بيانات البيانات مع طريقتَي المصادقة التاليتَين:
- مصادقة المستخدم
باستخدام نطاق التفويض
chat.spaces.readonly
أوchat.spaces
. - مصادقة التطبيقات
باستخدام نطاق التفويض
chat.bot
.
- مصادقة المستخدم
باستخدام نطاق التفويض
إدراج مساحات مع مصادقة المستخدم
لإدراج مساحات في Google Chat، عليك تقديم ما يلي في طلبك:
- باستخدام
مصادقة المستخدم،
حدِّد نطاق التفويض
chat.spaces.readonly
أوchat.spaces
. - استدعِ
طريقة
list
في الموردSpace
.
يسرد المثال التالي المساحات المُسمّاة والمحادثات الجماعية (وليس الرسائل المباشرة التي تمت فلترتها) المرئية للمستخدم الذي تمت المصادقة عليه:
Python
- في دليل العمل، أنشِئ ملفًا باسم
chat_space_list.py
. ضمِّن الرمز التالي في
chat_space_list.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"] def main(): ''' Authenticates with Chat API via user credentials, then lists named spaces and group chats (but not direct messages) visible to the authenticated user. ''' # 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) # Use the service endpoint to call Chat API. result = chat.spaces().list( # An optional filter that returns named spaces or unnamed group chats, # but not direct messages (DMs). filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"' ).execute() # Prints the returned list of spaces. print(result) if __name__ == '__main__': main()
في دليل العمل، أنشئ النموذج وقم بتشغيله:
python3 chat_space_list.py
Node.js
- في دليل العمل، أنشِئ ملفًا باسم
list-spaces.js
. ضمِّن الرمز التالي في
list-spaces.js
:const chat = require('@googleapis/chat'); const {authenticate} = require('@google-cloud/local-auth'); /** * List Chat spaces. * @return {!Promise<!Object>} */ async function listSpaces() { const scopes = [ 'https://www.googleapis.com/auth/chat.spaces.readonly', ]; const authClient = await authenticate({scopes, keyfilePath: 'client_secrets.json'}); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.list({ filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"' }); } listSpaces().then(console.log);
في دليل العمل، شغِّل النموذج:
node list-spaces.js
تعرض واجهة Chat API مجموعة مقسّمة إلى صفحات من المساحات المُعنونة والمحادثات الجماعية.
إدراج المساحات باستخدام مصادقة التطبيقات
لإدراج مساحات في Google Chat، عليك تقديم ما يلي في طلبك:
- باستخدام
مصادقة التطبيق،
حدِّد نطاق تفويض
chat.bot
. - استدعِ
طريقة
list
في الموردSpace
.
تسرد الأمثلة التالية المساحات المُسمّاة والمحادثات الجماعية (وليس الرسائل المباشرة) الظاهرة لتطبيق Chat:
Python
- في دليل العمل، أنشِئ ملفًا باسم
chat_space_list_app.py
. ضمِّن الرمز التالي في
chat_space_list_app.py
:from google.oauth2 import service_account from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Use the service endpoint to call Chat API. result = chat.spaces().list( # An optional filter that returns named spaces or unnamed # group chats, but not direct messages (DMs). filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"' ).execute() print(result)
في دليل العمل، أنشئ النموذج وقم بتشغيله:
python3 chat_space_list_app.py
Node.js
- في دليل العمل، أنشِئ ملفًا باسم
app-list-spaces.js
. ضمِّن الرمز التالي في
app-list-spaces.js
:const chat = require('@googleapis/chat'); /** * List Chat spaces. * @return {!Promise<!Object>} */ async function listSpaces() { const scopes = [ 'https://www.googleapis.com/auth/chat.bot', ]; const auth = new chat.auth.GoogleAuth({ scopes, keyFilename: 'credentials.json', }); const authClient = await auth.getClient(); const chatClient = await chat.chat({version: 'v1', auth: authClient}); return await chatClient.spaces.list({ filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"' }); } listSpaces().then(console.log);
في دليل العمل، شغِّل النموذج:
node app-list-spaces.js
تعرض Chat API مجموعة مقسّمة إلى صفحات من المساحات.
تخصيص التقسيم على صفحات أو فلترة القائمة
لإدراج المساحات في Google Chat، اضبط مَعلمات طلب البحث الاختيارية التالية لتخصيص عملية تقسيم النتائج على صفحات أو فلترة المساحات المدرَجة:
pageSize
: الحد الأقصى لعدد المسافات المطلوب عرضها قد تعرض الخدمة أقل من هذه القيمة. في حال عدم تحديد قيمة، يتم عرض 100 مسافة كحدّ أقصى. الحد الأقصى للقيمة هو 1,000، والقيم التي تتجاوز 1,000 يتم تغييرها تلقائيًا إلى 1,000.pageToken
: رمز مميز للصفحة، تم استلامه من مكالمة سابقة لمساحات العمل. قدِّم هذا الرمز المميّز لاسترداد الصفحة التالية. عند التقسيم على صفحات، يجب أن تتطابق قيمة الفلتر مع الاستدعاء الذي قدم الرمز المميز للصفحة. قد يؤدي تمرير قيمة مختلفة إلى نتائج غير متوقعة.filter
: فلتر طلب بحث للحصول على تفاصيل طلبات البحث المتوافقة، راجِع طريقةspaces.list
.
مواضيع ذات صلة
- أنشئ مساحة.
- إعداد مساحة
- الحصول على تفاصيل حول مساحة
- تعديل مساحة
- حذف مساحة
- العثور على مساحة للرسائل المباشرة