إدراج مساحات

يشرح هذا الدليل كيفية استخدام المورد list على مورد Space الخاص بـ Google Chat API لإدراج المساحات يؤدي سرد المساحات إلى عرض عنصر مقسّم على صفحات وقابل للفلترة. قائمة المساحات.

تشير رسالة الأشكال البيانية مرجع Space يمثّل مكانًا يمكن فيه للمستخدمين والتطبيقات في Chat إرسال الرسائل ومشاركتها والتعاون. تتوفّر عدة أنواع من المساحات:

  • الرسائل المباشرة هي محادثات بين مستخدمين أو مستخدم تطبيق Chat.
  • الدردشات الجماعية هي محادثات بين ثلاثة مستخدمين أو أكثر تطبيقات Chat
  • المساحات المُعنونة هي أماكن دائمة يرسل من خلالها المستخدمون الرسائل ويشاركون الملفات والتعاون.

إدراج المساحات باستخدام مصادقة التطبيقات يسرد المساحات التي يمكن لتطبيق Chat الوصول إليها. البيانات مسافات تشتمل على مصادقة المستخدم يسرد المساحات التي يمكن للمستخدم الذي تمت المصادقة عليه الوصول إليها.

المتطلبات الأساسية

Python

Node.js

إدراج المساحات مع مصادقة المستخدم

لإدراج المساحات في Google Chat، أدخِل ما يلي في الطلب:

يسرد المثال التالي المساحات المُسماة والمحادثات الجماعية (ولكن ليس المباشر الرسائل، التي تتم تصفيتها) مرئية للمستخدم الذي تمت مصادقته:

Python

  1. في دليل العمل، أنشِئ ملفًا باسم "chat_space_list.py".
  2. أدرِج الرمز التالي في 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()
    
  3. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_space_list.py
    

Node.js

  1. في دليل العمل، أنشِئ ملفًا باسم "list-spaces.js".
  2. أدرِج الرمز التالي في 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);
    
  3. في دليل العمل، شغِّل النموذج:

    node list-spaces.js
    

تعرض واجهة برمجة تطبيقات Chat مصفوفة مقسّمة إلى صفحات للمساحات المُعنونة والمحادثات الجماعية

إدراج المساحات من خلال مصادقة التطبيقات

لإدراج المساحات في Google Chat، أدخِل ما يلي في الطلب:

يسرد المثال التالي المساحات المُسماة والمحادثات الجماعية (ولكن ليس المباشر الرسائل) المرئية لتطبيق Chat:

Python

  1. في دليل العمل، أنشِئ ملفًا باسم "chat_space_list_app.py".
  2. أدرِج الرمز التالي في 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)
    
  3. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_space_list_app.py
    

Node.js

  1. في دليل العمل، أنشِئ ملفًا باسم "app-list-spaces.js".
  2. أدرِج الرمز التالي في 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);
    
  3. في دليل العمل، شغِّل النموذج:

    node app-list-spaces.js
    

تعرض واجهة Chat API مصفوفة مساحات مقسّمة على صفحات.

تخصيص عملية التقسيم على صفحات أو فلترة القائمة

لإدراج المساحات في Google Chat، عليك ضبط الاختيار التالي. مَعلمات طلب البحث لتخصيص التقسيم على صفحات للمساحات المدرَجة أو فلترتها:

  • pageSize: الحد الأقصى لعدد المسافات المطلوب عرضها قد تعرض الخدمة أقل من هذه القيمة. وفي حال عدم تحديد قيمة هذه السمة، يتم عرض 100 مسافة كحدّ أقصى. تشير رسالة الأشكال البيانية القيمة القصوى هي 1000؛ يتم تغيير القيم الأعلى من 1000 تلقائيًا إلى 1000.
  • pageToken: رمز مميّز للصفحة تم تلقّيه من استدعاء سابق لمساحات عمل في القائمة قدِّم هذا الرمز المميّز لاسترداد الصفحة التالية. عند التقسيم على صفحات، أن تتطابق قيمة الفلتر مع الطلب الذي يقدم الرمز المميز للصفحة. جارٍ اجتياز القيم المختلفة إلى نتائج غير متوقعة.
  • filter: فلتر طلب بحث للحصول على تفاصيل طلبات البحث المتوافقة، راجِع طريقة spaces.list.