إدراج أحداث من مساحة في Google Chat

يوضّح هذا الدليل طريقة استخدام الإجراء list في مرجع SpaceEvent من Google Chat API، وذلك لإدراج التغييرات التي تم إجراؤها على الموارد في مساحة.

يمثِّل المورد SpaceEvent تغييرًا في المساحة المستهدَفة، بما في ذلك الموارد الثانوية في المساحة، مثل الرسائل والتفاعلات والاشتراكات. للحصول على مزيد من المعلومات عن قائمة أنواع الأحداث وحمولات الأحداث المتاحة، يُرجى الاطّلاع على الحقلَين eventType وpayload ضمن المستندات المرجعية لموارد SpaceEvent.

يمكنك إدراج الأحداث قبل 28 يومًا من وقت الطلب كحد أقصى. يعرض الخادم الأحداث التي تحتوي على أحدث إصدار من المورد المتأثر. على سبيل المثال، إذا أدرجت أحداثًا حول أعضاء المساحة الجدد، يعرض الخادم موارد Membership التي تحتوي على أحدث تفاصيل الاشتراك. إذا تمت إزالة أعضاء جدد خلال الفترة المطلوبة، تحتوي حمولة الأحداث على مورد Membership فارغ.

لاستدعاء هذه الطريقة، يجب عليك استخدام مصادقة المستخدم. لإدراج أحداث من مساحة، يجب أن يكون المستخدم الذي تمت مصادقته عضوًا في هذه المساحة.

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

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. تتوافق قائمة موارد SpaceEvent مع طرق المصادقة التالية:

سرد أحداث الفضاء

لإدراج أحداث المساحة من "مساحة Chat"، اتّبِع الخطوات التالية:

  • عليك استدعاء طريقة list في SpaceEvent المورد.
  • حدِّد أنواع الأحداث التي تريد إدراجها باستخدام الحقل filter. يجب تحديد نوع حدث واحد على الأقل، ويمكنك أيضًا الفلترة حسب التاريخ. للحصول على قائمة بأنواع الأحداث المتوافقة، يُرجى الاطّلاع على حقل eventType.
  • باستخدام مصادقة المستخدم، يمكنك تحديد نطاق تفويض واحد أو أكثر لإتاحة كل نوع من أنواع الأحداث في طلبك. من بين أفضل الممارسات، اختر النطاق الأكثر تقييدًا الذي يسمح لتطبيقك بالعمل. لاختيار نطاق، يُرجى الاطّلاع على نظرة عامة على المصادقة والتفويض.

في نموذج الرمز البرمجي التالي، يمكنك سرد أحداث حول العضويات والرسائل الجديدة في مساحة.

Python

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

    """Lists SpaceEvent resources from the Chat API."""
    
    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",
    "https://www.googleapis.com/auth/chat.messages.readonly"]
    
    # 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().spaceEvents().list(
    
        # The space from which to list events.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # A required filter. Filters and returns events about new memberships and messages
        filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"'
    
    ).execute()
    
    # Prints details about the created space events.
    print(result)
    
  3. في التعليمة البرمجية، استبدل ما يلي:

    • SPACE: اسم مساحة يمكنك الحصول عليه من خلال طريقة spaces.list في Chat API أو من عنوان URL الخاص بالمساحة
  4. في دليل العمل، أنشئ النموذج وقم بتشغيله:

    python3 chat_space_event_list.py
    

تعرض Chat API قائمة بأحداث SpaceEvent موارد حول الاشتراكات والرسائل الجديدة.

تخصيص التقسيم على صفحات

يمكنك اختياريًا ضبط مَعلمات طلب البحث التالية لتخصيص عملية التقسيم على صفحات:

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