دعوة مستخدم أو "مجموعة Google" أو تطبيق Google Chat إلى مساحة أو إضافتهم

يشرح هذا الدليل طريقة استخدام طريقة create على مورد membership من Google Chat API لدعوة مستخدم أو "مجموعة Google" أو تطبيق Chat إلى مساحة تُعرف أيضًا باسم إنشاء عضوية أو إضافتها. عند إنشاء عضوية، إذا كانت سياسة القبول التلقائي الخاصة به غير مفعّلة لدى العضو المحدّد، تتم دعوته وعليه قبول دعوة المساحة قبل الانضمام. خلاف ذلك، يؤدي إنشاء عضوية إلى إضافة العضو مباشرة إلى المساحة المحددة.

يوضّح المورد Membership ما إذا تمت دعوة المستخدم البشري أو تطبيق Google Chat إلى مساحة أو جزء منها أو غير موجود فيها.

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

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.memberships أو chat.memberships.app.

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.memberships أو chat.memberships.app.

دعوة مستخدم إلى مساحة أو إضافته

لدعوة مستخدم أو إضافته إلى مساحة، عليك إدخال ما يلي في طلبك:

  • حدِّد نطاق تفويض chat.memberships.
  • استدعِ طريقة create في مرجع membership.
  • اضبط parent على اسم مورد المساحة التي تريد إنشاء العضوية فيها.
  • اضبط السمة member على users/{user} حيث يكون {user} هو المستخدم الذي تريد إنشاء عضوية له، وهو:
    • رقم تعريف الشخص في People API. على سبيل المثال، إذا كان شخص resourceName في واجهة برمجة تطبيقات "الأشخاص" هو people/123456789، يجب ضبط membership.member.name على users/123456789.
    • رقم تعريف المستخدم في واجهة برمجة التطبيقات للدليل.
    • عنوان البريد الإلكتروني للمستخدِم. على سبيل المثال، users/222larabrown@gmail.com أو users/larabrown@cymbalgroup.com. إذا كان المستخدم يستخدم "حساب Google" أو كان ينتمي إلى مؤسسة مختلفة على Google Workspace، عليك استخدام عنوان بريده الإلكتروني.

يضيف المثال التالي مستخدمًا إلى مساحة:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_user_create.py.
  2. أدرِج الرمز التالي في chat_membership_user_create.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدل ما يلي:

    • SPACE: اسم مساحة يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

    • USER: رقم تعريف المستخدم

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_membership_user_create.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the user to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/USER', type: 'HUMAN'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. في الرمز، استبدل ما يلي:

    • SPACE: اسم مساحة يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

    • USER: رقم تعريف المستخدم

  4. في دليل العمل، شغِّل النموذج:

    node add-user-to-space.js
    

تعرض واجهة Chat API مثالاً على membership يفصّل اشتراك المستخدم الذي تم إنشاؤه.

دعوة "مجموعة Google" أو إضافتها إلى مساحة

لدعوة مجموعة Google أو إضافتها إلى مساحة، عليك تضمين ما يلي في طلبك:

  • حدِّد نطاق تفويض chat.memberships.
  • استدعِ طريقة create في مرجع membership.
  • اضبط parent على اسم مورد المساحة التي تريد إنشاء العضوية فيها.
  • اضبط groupMember على groups/{group} حيث يكون {group} هو معرّف المجموعة التي تريد إنشاء عضوية لها. يمكن استرداد رقم تعريف المجموعة باستخدام Cloud Identity API. مثلاً، إذا أعادت Cloud Identity API مجموعة تحمل اسم groups/123456789، يتم في هذه الحالة ضبط membership.groupMember.name على groups/123456789.

لا يمكن إضافة "مجموعات Google" إلى محادثة جماعية أو رسالة مباشرة، ولكن فقط إلى مساحة تحمل اسم. يضيف المثال التالي مجموعة إلى مساحة مُعنوَنة:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_group_create.py.
  2. أدرِج الرمز التالي في chat_membership_group_create.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a group to a Chat space by creating a membership.
        '''
    
        # 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().members().create(
    
            # The named space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which group the membership is for.
            body = {
              'groupMember': {
                'name':'groups/GROUP',
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدل ما يلي:

    • SPACE: اسم مساحة يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

    • GROUP: رقم تعريف مجموعة

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_membership_group_create.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the group to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {groupMember: {name: 'groups/GROUP'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. في الرمز، استبدل ما يلي:

    • SPACE: اسم مساحة يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

    • GROUP: رقم تعريف مجموعة

  4. في دليل العمل، شغِّل النموذج:

    node add-group-to-space.js
    

تعرض واجهة Chat API مثالاً على membership يفصّل عضوية المجموعة التي تم إنشاؤها.

إضافة تطبيق Chat إلى مساحة

لا يمكن لتطبيق Chat إضافة تطبيق آخر كعضو إلى مساحة. لإضافة تطبيق Chat إلى مساحة أو رسالة مباشرة بين مستخدمَين، عليك تضمين ما يلي في طلبك:

  • حدِّد نطاق تفويض chat.memberships.app.
  • استدعِ طريقة create في مرجع membership.
  • اضبط parent على اسم مورد المساحة التي تريد إنشاء العضوية فيها.
  • اضبط member على users/app، وهو اسم مستعار يمثّل التطبيق الذي يطلب واجهة برمجة تطبيقات Chat.

يضيف المثال التالي تطبيق Chat إلى مساحة:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_membership_app_create.py.
  2. أدرِج الرمز التالي في chat_membership_app_create.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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds the Chat app to a Chat space.
        '''
    
        # 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().members().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Set the Chat app as the entity that gets added to the space.
            # 'app' is an alias for the Chat app calling the API.
            body = {
                'member': {
                  'name':'users/app',
                  'type': 'BOT'
                }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل SPACE باسم مساحة، ويمكنك الحصول عليه من خلال طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_membership_app_create.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the app to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addAppToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/app', type: 'BOT'}}
      });
    }
    
    addAppToSpace().then(console.log);
    
  3. في الرمز، استبدِل SPACE باسم مساحة، ويمكنك الحصول عليه من خلال طريقة spaces.list في Chat API أو من عنوان URL للمساحة.

  4. في دليل العمل، شغِّل النموذج:

    node add-app-to-space.js
    

تعرض واجهة Chat API مثالاً على membership يفصّل اشتراك التطبيق الذي تم إنشاؤه.