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

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

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

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

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

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

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

Python

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

    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. على سبيل المثال، إذا كان مستخدم People API resourceName هو people/123456789، يمكنك إضافة المستخدم إلى المساحة من خلال تضمين اشتراك في users/123456789 على أنّه member.name.
  • لإنشاء رسالة مباشرة بين المستخدم المتصل وشخص آخر، حدِّد عضوية المستخدم البشري في طلبك.
  • لإنشاء رسالة مباشرة بين مستخدم الاتصال وتطبيق الاتصال، يجب ضبط 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 people and app 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'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created membership.
        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'}},
          ]
        }
      });
    }
    
    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.