إعداد مساحة تضم الأعضاء الأوليين

يشرح هذا الدليل طريقة استخدام طريقة setup على مورد Space من Google Chat API لإعداد مساحة في Google Chat. يؤدي إعداد مساحة إلى إنشاء مساحة وإضافة مستخدمين محددين إليها.

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

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

عند إعداد مساحة، يجب مراعاة ما يلي:

  • تتم إضافة المستخدم الذي يتصل (المصادق عليه) تلقائيًا إلى المساحة، وبالتالي لا تحتاج إلى تحديد عضوية المستخدم في الطلب.
  • عند إنشاء رسالة مباشرة (DM) إذا كانت هناك رسالة مباشرة بين مستخدمَين، يتم عرضها. وبخلاف ذلك، يتم إنشاء رسالة مباشرة.
  • عند إنشاء محادثة جماعية، إذا لم تتم إضافة أيّ من العضويات الواردة في الطلب بنجاح إلى المحادثة الجماعية (مثل مشكلة في الإذن)، قد يتم إنشاء محادثة جماعية فارغة (بما في ذلك المستخدم المتصل فقط).
  • لا يمكنك إعداد مساحات تتضمن ردودًا في سلاسل منفصلة أو إضافة مستخدمين من خارج Google Workspace.
  • تتمّ فلترة العضويات المكرّرة (بما في ذلك المستخدم المتّصل) المقدَّمة في الطلب بدلاً من حدوث خطأ في الطلب.

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

Python

  • Python 3.6 أو أعلى
  • تتيح لك أداة pip إدارة الحزم
  • أحدث مكتبات برامج Google للغة بايثون. لتثبيتها أو تحديثها، قم بتشغيل الأمر التالي في واجهة سطر الأوامر لديك:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • مشروع على Google Cloud مع تفعيل وإعداد Google Chat API لمعرفة الخطوات، راجِع إنشاء تطبيق Google Chat.
  • تم ضبط التفويض لتطبيق Chat. لإعداد مساحة، يتطلّب مصادقة المستخدم باستخدام نطاق التفويض chat.spaces.create أو chat.spaces.

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.create أو chat.spaces.

إعداد مساحة

لإعداد مساحة، أدخِل ما يلي في طلبك:

  • حدِّد نطاق التفويض chat.spaces.create أو chat.spaces.
  • استدعِ طريقة setup في مرجع Space.
  • لإضافة مستخدم بشري كعضو في المساحة، حدِّد users/{user}، حيث تكون {user} إما {person_id} بالنسبة إلى person من People API، أو رقم تعريف user في Directory API. على سبيل المثال، إذا كان مستخدم واجهة برمجة التطبيقات "resourceName" في People API هو people/123456789، يمكنك إضافة المستخدم إلى المساحة من خلال تضمين اشتراك في users/123456789 باعتباره member.name.
  • لإضافة مجموعة كعضو في المساحة، حدِّد groups/{group}، حيث يكون {group} هو معرّف المجموعة الذي تريد إنشاء عضوية لها. ويمكن استرداد رقم تعريف المجموعة باستخدام Cloud Identity API. مثلاً، إذا أعادت Cloud Identity API مجموعة تحمل اسم groups/123456789، يتم في هذه الحالة ضبط membership.groupMember.name على groups/123456789. لا يمكن إضافة "مجموعات Google" إلى محادثة جماعية أو رسالة مباشرة، بل فقط إلى مساحة مُعنوَنة.
  • لإنشاء رسالة مباشرة بين المستخدم المتصل ومستخدم آخر، حدِّد عضوية المستخدم في طلبك.
  • لإنشاء رسالة مباشرة بين المستخدم المتصل وتطبيق الاتصال، يُرجى ضبط Space.singleUserBotDm على true وعدم تحديد أي اشتراكات. لا يمكنك استخدام هذه الطريقة إلا لإعداد رسالة مباشرة باستخدام تطبيق الاتصال. لإضافة تطبيق الاتصال كعضو في مساحة أو كرسالة مباشرة حالية بين مستخدمَين، يمكنك الاطّلاع على إنشاء اشتراك.

ينشئ المثال التالي مساحة مُعنوَنة وينشئ عضويات في المساحة لمجموعة واحدة وثلاثة مستخدمين (من بينهم المستخدم الذي تمت المصادقة عليه ومستخدمان آخران محدّدان).

Python

  1. في دليل العمل، أنشِئ ملفًا باسم "chat_space_setup.py".
  2. أدرِج الرمز التالي في chat_space_setup.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.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The users and groups to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                },
                {
                  'groupMember': {
                    'name': 'groups/11223344'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_space_setup.py
    

Node.js

  1. في دليل العمل، أنشِئ ملفًا باسم "setup-space.js".
  2. أدرِج الرمز التالي في setup-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
            {groupMember: {name: 'groups/11223344'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. في دليل العمل، شغِّل النموذج:

    node setup-space.js
    

تم إعداد مساحة محادثة مُسمّاة تضم مجموعة واحدة وثلاثة مستخدمين، بما في ذلك المستخدم الذي تمت المصادقة عليه.

للانتقال إلى المساحة، استخدِم رقم تعريف المورد الخاص بالمساحة لإنشاء عنوان URL لها. يمكنك الحصول على رقم تعريف المورد من المساحة name في نص الردّ على Google Chat. على سبيل المثال، إذا كانت مساحة name هي spaces/1234567، يمكنك الانتقال إلى المساحة باستخدام عنوان URL التالي: https://mail.google.com/chat/u/0/#chat/space/1234567.