إدراج اشتراكات Google Workspace

توضّح هذه الصفحة كيفية إدراج اشتراكات Google Workspace باستخدام طريقة subscriptions.list().

عند استدعاء هذا الإجراء مع مصادقة المستخدم، يعرض الإجراء قائمة بالاشتراكات التي أذِن بها المستخدم. عند استخدام ميزة "مصادقة التطبيق"، يمكن أن تعرض الطريقة قائمة تتضمّن أي اشتراك في التطبيق.

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

برمجة التطبيقات

  • مشروع "برمجة تطبيقات Google":
    • استخدِم مشروعك على Google Cloud بدلاً من المشروع التلقائي الذي يتم إنشاؤه تلقائيًا بواسطة Apps Script.
    • بالنسبة إلى جميع النطاقات التي أضفتها لإعداد شاشة موافقة OAuth، عليك أيضًا إضافة النطاقات إلى ملف appsscript.json في مشروع "برمجة تطبيقات Google". على سبيل المثال، إذا حدّدت النطاق chat.messages، أضِف ما يلي:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • فعِّل خدمة Google Workspace Events المتقدّمة.

Python

  • الإصدار 3.6 أو الإصدارات الأحدث من Python
  • أداة إدارة الحزم pip
  • أحدث مكتبات برامج Google للغة Python لتثبيتها أو تعديلها، نفِّذ الأمر التالي في واجهة سطر الأوامر:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • اشتراك في Google Workspace لإنشاء اشتراك، يُرجى الاطّلاع على إنشاء اشتراك.

  • يتطلّب المصادقة:

    • لإثبات هوية المستخدم، يجب توفير نطاق يتوافق مع نوع واحد على الأقل من أنواع الأحداث الخاصة بالاشتراك. لتحديد نطاق، اطّلِع على النطاقات حسب نوع الحدث.
    • للمصادقة على التطبيق، يجب استخدام النطاق chat.bot (تطبيقات Google Chat فقط).

عرض الاشتراكات التي أذِن بها مستخدم

لعرض الاشتراكات، يجب الفلترة حسب نوع حدث واحد على الأقل. يمكنك أيضًا فلترة طلب البحث حسب مصدر مستهدف واحد أو أكثر. للاطّلاع على معلومات حول فلاتر طلب البحث المتوافقة، راجِع مستندات طريقة list().

يعرض نموذج الرمز التالي مصفوفة من عناصر Subscription تمت فلترتها حسب نوع الحدث والمورد المستهدف. عند المصادقة كمستخدم، لا تعرض الطريقة سوى قائمة بالاشتراكات التي سمح المستخدم للتطبيق بإنشائها.

لعرض الاشتراكات لنوع حدث ومورد مستهدف محدّدين:

برمجة التطبيقات

  1. في مشروع "برمجة تطبيقات Google"، أنشئ ملف نص برمجي جديدًا باسم listSubscriptions وأضِف الرمز التالي:

    function listSubscriptions() {
      // Filter for event type (required).
      const eventType = 'EVENT_TYPE';
    
      // Filter for target resource (optional).
      const targetResource = 'TARGET_RESOURCE';
    
      const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"`
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.list({ filter });
      console.log(response);
    }
    

    غيِّر القيم في السلسلة على الشكل التالي:

    • EVENT_TYPE: نوع حدث منسَّق وفقًا لمواصفات CloudEvents. على سبيل المثال، لفلترة الاشتراكات التي تتلقّى أحداثًا حول العضويات الجديدة في مساحة Google Chat، google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: مورد مستهدف، منسَّق كاسم المورد الكامل. على سبيل المثال، لفلترة الاشتراكات في مساحة Google Chat، استخدِم //chat.googleapis.com/spaces/SPACE_ID حيث يمثّل spaces/SPACE_ID الحقل name الخاص بمورد Space.
  2. لعرض قائمة بالاشتراكات، شغِّل الدالة listSubscriptions في مشروع "برمجة تطبيقات Google".

Python

  1. في دليل العمل، أنشئ ملفًا باسم list_subscriptions.py وأضِف الرمز التالي:

    """List subscriptions."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['SCOPE']
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    # Filter for event type (required).
    EVENT_TYPE = 'EVENT_TYPE'
    
    # Filter for target resource (optional).
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"'
    response = service.subscriptions().list(filter=FILTER).execute()
    print(response)
    

    غيِّر القيم في السلسلة على الشكل التالي:

    • SCOPE: نطاق OAuth يتوافق مع نوع حدث واحد على الأقل من الاشتراك على سبيل المثال، إذا كان اشتراكك يتلقّى أحداثًا في مساحة Chat معدَّلة، https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: نوع حدث منسَّق وفقًا لمواصفات CloudEvents. على سبيل المثال، لفلترة الاشتراكات التي تتلقّى أحداثًا حول العضويات الجديدة في مساحة Google Chat، google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: مورد مستهدف، منسَّق كاسم المورد الكامل. على سبيل المثال، لفلترة الاشتراكات في مساحة Google Chat، استخدِم //chat.googleapis.com/spaces/SPACE_ID حيث يمثّل spaces/SPACE_ID الحقل name الخاص بمورد Space.
  2. في دليل العمل، تأكَّد من تخزين بيانات اعتماد معرّف عميل OAuth وتسمية الملف credentials.json. يستخدم نموذج الرمز ملف JSON هذا للمصادقة مع Google Workspace والحصول على بيانات اعتماد المستخدم. للاطّلاع على التعليمات، راجِع مقالة إنشاء بيانات اعتماد معرّف عميل OAuth.

  3. لعرض قائمة بالاشتراكات، نفِّذ الأمر التالي في الوحدة الطرفية:

    python3 list_subscriptions.py

تعرض Google Workspace Events API مصفوفة مقسَّمة إلى صفحات من Subscriptionعناصر تتطابق مع فلتر طلب البحث.