إدراج المستخدمين وتطبيقات Google Chat في مساحة

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

يوضّح المرجع Membership ما إذا تمت دعوة مستخدم أو تطبيق Google 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 في مساحة باستخدام مصادقة المستخدم

لإدراج المستخدمين وتطبيق Chat في مساحة يمكن للمستخدم الذي تمت المصادقة عليه الوصول إليها، ضَع ما يلي في طلبك:

يعرض المثال التالي أعضاء المساحة البشرية (وليس مدراء المساحات) الذين يمكنهم الاطّلاع على المستخدم الذي تمت مصادقته لأنّه تم ضبط filter على ROLE_Member:

Python

  1. في دليل العمل، أنشِئ ملفًا باسم chat_member_list_user.py.
  2. ضمِّن الرمز التالي في chat_member_list_user.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.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists human space members (but not space managers) in a
        specified 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().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل SPACE باسم مساحة، الذي يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL الخاص بالمساحة.

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

    python3 chat_member_list_user.py
    

تعرض Google Chat API قائمة بأعضاء المساحة (باستثناء مدراء المساحة) وأعضاء التطبيقات من المساحة المحدّدة.

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

لإدراج المستخدمين وتطبيق Chat في مساحة يمكن للتطبيق الذي تمت المصادقة عليه الوصول إليها، ضَع ما يلي في طلبك:

يسرد المثال التالي أعضاء المساحة البشرية (وليس مدراء المساحة) الذين يظهرون لتطبيق Chat:

Python

  1. في دليل العمل، أنشِئ ملفًا باسم chat_member_list_app.py.
  2. ضمِّن الرمز التالي في chat_member_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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. في الرمز، استبدِل SPACE باسم مساحة، الذي يمكنك الحصول عليه من طريقة spaces.list في Chat API أو من عنوان URL الخاص بالمساحة.

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

    python3 chat_member_list_app.py
    

تعرض Google Chat API قائمة بأعضاء المساحة البشرية (باستثناء مدراء المساحة) من المساحة المحدّدة.

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

لإدراج العضويات، مرِّر مَعلمات طلب البحث التالية لتخصيص التقسيم على صفحات أو فلترة العضويات المدرَجة:

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