Liệt kê các gói thuê bao của Google Workspace

Trang này giải thích cách liệt kê các gói thuê bao Google Workspace bằng phương thức subscriptions.list().

Khi bạn gọi phương thức này bằng quy trình xác thực người dùng, phương thức này sẽ trả về danh sách các gói thuê bao do người dùng uỷ quyền. Khi bạn sử dụng tính năng xác thực ứng dụng, phương thức này có thể trả về một danh sách chứa mọi gói thuê bao của ứng dụng.

Điều kiện tiên quyết

Apps Script

  • Một dự án Apps Script:
    • Sử dụng dự án Google Cloud của bạn thay vì dự án mặc định do Apps Script tự động tạo.
    • Đối với tất cả các phạm vi mà bạn đã thêm để định cấu hình màn hình đồng ý OAuth, bạn cũng phải thêm các phạm vi đó vào tệp appsscript.json trong dự án Apps Script. Ví dụ: nếu bạn chỉ định phạm vi chat.messages, hãy thêm nội dung sau:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Bật dịch vụ nâng cao Google Workspace Events.

Python

  • Python 3.6 trở lên
  • Công cụ quản lý gói pip
  • Thư viện ứng dụng mới nhất của Google cho Python. Để cài đặt hoặc cập nhật các công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Gói thuê bao Google Workspace. Để tạo một gói thuê bao, hãy xem phần Tạo gói thuê bao.

  • Yêu cầu xác thực:

    • Đối với hoạt động xác thực người dùng, cần có một phạm vi hỗ trợ ít nhất một trong các loại sự kiện cho gói thuê bao. Để xác định một phạm vi, hãy xem phần Phạm vi theo loại sự kiện.
    • Đối với xác thực ứng dụng, yêu cầu phạm vi chat.bot (chỉ dành cho ứng dụng Google Chat).

Liệt kê các gói thuê bao mà người dùng cho phép

Để liệt kê các lượt đăng ký, bạn phải lọc theo ít nhất một loại sự kiện. Bạn cũng có thể lọc truy vấn theo một hoặc nhiều tài nguyên mục tiêu. Để tìm hiểu về các bộ lọc truy vấn được hỗ trợ, hãy xem tài liệu về phương thức list().

Mẫu mã sau đây trả về một mảng các đối tượng Subscription được lọc theo loại sự kiện và tài nguyên đích. Khi được xác thực với tư cách là người dùng, phương thức này chỉ trả về danh sách những gói thuê bao mà người dùng đã cho phép ứng dụng tạo.

Cách liệt kê các lượt đăng ký cho một loại sự kiện và tài nguyên đích được chỉ định:

Apps Script

  1. Trong dự án Apps Script, hãy tạo một tệp tập lệnh mới có tên là listSubscriptions rồi thêm mã sau:

    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);
    }
    

    Thay thế nội dung sau:

    • EVENT_TYPE: Một loại sự kiện được định dạng theo quy cách CloudEvents. Ví dụ: để lọc các gói thuê bao nhận được sự kiện về thành viên mới vào một không gian trên Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: Một tài nguyên đích, được định dạng dưới dạng tên tài nguyên đầy đủ. Ví dụ: để lọc theo lượt đăng ký cho một không gian trên Google Chat, hãy sử dụng //chat.googleapis.com/spaces/SPACE_ID trong đó spaces/SPACE_ID đại diện cho trường name cho tài nguyên Space.
  2. Để liệt kê các lượt đăng ký, hãy chạy hàm listSubscriptions trong dự án Apps Script của bạn.

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là list_subscriptions.py rồi thêm đoạn mã sau:

    """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)
    

    Thay thế nội dung sau:

    • SCOPE: Một phạm vi OAuth hỗ trợ ít nhất một loại sự kiện trong gói thuê bao. Ví dụ: nếu gói thuê bao của bạn nhận được các sự kiện là không gian Chat mới cập nhật, https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: Một loại sự kiện được định dạng theo quy cách CloudEvents. Ví dụ: để lọc các gói thuê bao nhận được sự kiện về thành viên mới vào một không gian trên Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: Một tài nguyên đích, được định dạng dưới dạng tên tài nguyên đầy đủ. Ví dụ: để lọc theo lượt đăng ký cho một không gian trên Google Chat, hãy sử dụng //chat.googleapis.com/spaces/SPACE_ID trong đó spaces/SPACE_ID đại diện cho trường name cho tài nguyên Space.
  2. Trong thư mục làm việc, hãy đảm bảo bạn đã lưu trữ thông tin đăng nhập mã ứng dụng OAuth và đặt tên cho tệp là credentials.json. Mã mẫu sử dụng tệp JSON này để xác thực với Google Workspace và lấy thông tin đăng nhập của người dùng. Để biết hướng dẫn, hãy xem phần Tạo thông tin đăng nhập mã ứng dụng khách OAuth.

  3. Để liệt kê các gói thuê bao, hãy chạy lệnh sau trong thiết bị đầu cuối:

    python3 list_subscriptions.py

Google Workspace Events API trả về một mảng được phân trang gồm các Subscriptionđối tượng khớp với bộ lọc cho truy vấn của bạn.