رویدادها را از فضای چت Google فهرست کنید

این راهنما نحوه استفاده از روش list را در منبع SpaceEvent در Google Chat API برای فهرست کردن تغییرات منابع در یک فضا توضیح می‌دهد.

منبع SpaceEvent نشان‌دهنده تغییر در فضای هدف، از جمله منابع فرزند فضا مانند پیام‌ها، واکنش‌ها و عضویت‌ها است. برای اطلاعات بیشتر در مورد لیست انواع رویداد و بارهای رویداد پشتیبانی شده، به فیلدهای eventType و payload در اسناد مرجع منبع SpaceEvent مراجعه کنید.

شما می توانید رویدادها را تا 28 روز قبل از زمان درخواست لیست کنید. سرور رویدادهایی را برمی گرداند که حاوی جدیدترین نسخه منبع آسیب دیده هستند. برای مثال، اگر رویدادهای مربوط به اعضای جدید فضایی را فهرست کنید، سرور منابع Membership را که حاوی آخرین جزئیات عضویت است، برمی‌گرداند. اگر اعضای جدید در طول دوره درخواستی حذف شوند، بار رویداد حاوی یک منبع Membership خالی است.

برای فراخوانی این روش، باید از احراز هویت کاربر استفاده کنید. برای فهرست کردن رویدادها از یک فضا، کاربر احراز هویت شده باید عضوی از فضا باشد.

پیش نیازها

پایتون

  • پایتون 3.6 یا بالاتر
  • ابزار مدیریت بسته پیپ
  • جدیدترین کتابخانه های مشتری گوگل برای پایتون. برای نصب یا به روز رسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • یک پروژه Google Cloud با Google Chat API فعال و پیکربندی شده است. برای مراحل، به ساخت برنامه گپ Google مراجعه کنید.
  • مجوز برای برنامه چت پیکربندی شد. فهرست منابع SpaceEvent از روش‌های احراز هویت زیر پشتیبانی می‌کند:

فهرست رویدادهای فضایی

برای فهرست کردن رویدادهای فضایی از فضای چت، موارد زیر را انجام دهید:

  • متد list را در منبع SpaceEvent فراخوانی کنید.
  • با استفاده از فیلد filter ، انواع رویدادها را مشخص کنید. شما باید حداقل یک نوع رویداد را مشخص کنید، و همچنین می توانید بر اساس تاریخ فیلتر کنید. برای لیستی از انواع رویدادهای پشتیبانی شده، قسمت eventType را ببینید.
  • با احراز هویت کاربر ، یک یا چند حوزه مجوز را برای پشتیبانی از هر نوع رویداد در درخواست خود مشخص کنید. به عنوان بهترین روش، محدودترین محدوده را انتخاب کنید که همچنان به برنامه شما اجازه عملکرد می دهد. برای انتخاب محدوده، به نمای کلی احراز هویت و مجوز مراجعه کنید.

در نمونه کد زیر، رویدادهای مربوط به عضویت‌ها و پیام‌های جدید را در یک فاصله فهرست می‌کنید.

پایتون

  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 : یک نشانه صفحه، دریافت شده از تماس قبلی با رویدادهای فضای لیست. این نشانه را برای بازیابی صفحه بعدی ارائه دهید. هنگام صفحه‌بندی، مقدار فیلتر باید با تماسی که توکن صفحه را ارائه می‌کند، مطابقت داشته باشد. عبور یک مقدار متفاوت ممکن است منجر به نتایج غیرمنتظره شود.