اشتراک‌های Google Workspace را فهرست کنید

این صفحه نحوه‌ی فهرست کردن اشتراک‌های Google Workspace را با استفاده از متد subscriptions.list() توضیح می‌دهد.

وقتی این متد را با احراز هویت کاربر فراخوانی می‌کنید، این متد لیستی از اشتراک‌های مجاز توسط کاربر را برمی‌گرداند. وقتی از احراز هویت برنامه استفاده می‌کنید، این متد می‌تواند لیستی را برگرداند که شامل هرگونه اشتراکی برای برنامه است.

پیش‌نیازها

اسکریپت برنامه‌ها

  • یک پروژه اسکریپت برنامه‌ها:
    • به جای پروژه پیش‌فرضی که به طور خودکار توسط Apps Script ایجاد شده است، از پروژه Google Cloud خود استفاده کنید.
    • برای تمام محدوده‌هایی که برای پیکربندی صفحه رضایت OAuth اضافه کرده‌اید، باید محدوده‌ها را به فایل appsscript.json در پروژه Apps Script خود نیز اضافه کنید. برای مثال، اگر محدوده chat.messages را مشخص کرده‌اید، موارد زیر را اضافه کنید:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • سرویس پیشرفته Google Workspace Events را فعال کنید .

پایتون

  • پایتون ۳.۶ یا بالاتر
  • ابزار مدیریت بسته pip
  • جدیدترین کتابخانه‌های کلاینت گوگل برای پایتون. برای نصب یا به‌روزرسانی آنها، دستور زیر را در رابط خط فرمان خود اجرا کنید:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

فهرست اشتراک‌های مجاز توسط یک کاربر

برای فهرست کردن اشتراک‌ها، باید حداقل بر اساس یک نوع رویداد فیلتر کنید. همچنین می‌توانید کوئری خود را بر اساس یک یا چند منبع هدف فیلتر کنید. برای کسب اطلاعات در مورد فیلترهای کوئری پشتیبانی شده، به مستندات متد list() مراجعه کنید.

نمونه کد زیر آرایه‌ای از اشیاء Subscription را که بر اساس نوع رویداد و منبع هدف فیلتر شده‌اند، برمی‌گرداند. هنگامی که به عنوان کاربر احراز هویت می‌شود، این متد فقط لیستی از Subscriptionهایی را که کاربر به برنامه اجازه ایجاد آنها را داده است، برمی‌گرداند.

برای فهرست کردن اشتراک‌ها برای یک نوع رویداد مشخص و منبع هدف:

اسکریپت برنامه‌ها

  1. در پروژه Apps Script خود، یک فایل اسکریپت جدید با نام 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.workspace.chat.message.v1.created .
    • TARGET_RESOURCE : یک منبع هدف که به صورت نام کامل منبع قالب‌بندی شده است. برای مثال، برای فیلتر کردن بر اساس اشتراک‌ها برای یک فضای چت، از //chat.googleapis.com/spaces/ SPACE_ID استفاده کنید که در آن spaces/ SPACE_ID نشان دهنده فیلد name برای منبع Space است.
  2. برای فهرست کردن اشتراک‌ها، تابع listSubscriptions را در پروژه Apps Script خود اجرا کنید.

پایتون

  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 که حداقل از یک نوع رویداد از اشتراک پشتیبانی می‌کند . برای مثال، اگر اشتراک شما رویدادهایی را دریافت می‌کند که یک فضای چت به‌روزرسانی شده است، https://www.googleapis.com/auth/chat.spaces.readonly .
    • EVENT_TYPE : یک نوع رویداد که مطابق با مشخصات CloudEvents قالب‌بندی شده است. برای مثال، برای فیلتر کردن اشتراک‌هایی که رویدادهای مربوط به عضویت‌های جدید در یک فضای چت را دریافت می‌کنند، google.workspace.chat.message.v1.created .
    • TARGET_RESOURCE : یک منبع هدف که به صورت نام کامل منبع قالب‌بندی شده است. برای مثال، برای فیلتر کردن بر اساس اشتراک‌ها برای یک فضای چت، از //chat.googleapis.com/spaces/ SPACE_ID استفاده کنید که در آن spaces/ SPACE_ID نشان دهنده فیلد name برای منبع Space است.
  2. در دایرکتوری کاری خود، مطمئن شوید که اعتبارنامه‌های شناسه کلاینت OAuth خود را ذخیره کرده و فایل را با نام credentials.json نامگذاری کرده‌اید. نمونه کد از این فایل JSON برای احراز هویت با Google Workspace و دریافت اعتبارنامه‌های کاربر استفاده می‌کند. برای دستورالعمل‌ها، به Create OAuth client ID credentials مراجعه کنید.

  3. برای فهرست کردن اشتراک‌ها، دستور زیر را در ترمینال خود اجرا کنید:

    python3 list_subscriptions.py

رابط برنامه‌نویسی کاربردی رویدادهای فضای کاری گوگل (Google Workspace Events API) یک آرایه صفحه‌بندی‌شده از اشیاء Subscription را برمی‌گرداند که با فیلتر مورد نظر شما مطابقت دارند.