Liệt kê người dùng và ứng dụng Google Chat trong một không gian

Hướng dẫn này giải thích cách sử dụng phương thức list trên tài nguyên membership của API Google Chat để liệt kê người dùng và ứng dụng Chat trong một không gian dưới dạng danh sách thành viên được phân trang và lọc được trong một không gian. Việc liệt kê thành viên có xác thực ứng dụng liệt kê thành viên trong các không gian mà ứng dụng Chat có quyền truy cập, nhưng không bao gồm tư cách thành viên của ứng dụng Chat, bao gồm cả thành viên của không gian đó. Liệt kê thành viên có Xác thực người dùng liệt kê tư cách thành viên trong các không gian mà người dùng đã xác thực có quyền truy cập.

Tài nguyên Membership cho biết người dùng thực hoặc ứng dụng Google Chat được mời tham gia, tham gia hay không tham gia không gian.

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

Python

  • Python 3.6 trở lên
  • Công cụ quản lý gói pip
  • Các thư viện ứng dụng mới nhất của Google dành cho Python. Để cài đặt hoặc cập nhật các thành phần 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 google-auth
    
  • Một dự án trên Google Cloud đã bật và thiết lập API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
  • Đã định cấu hình hoạt động uỷ quyền cho ứng dụng Chat. Gói thành viên trang thông tin hỗ trợ cả hai phương thức xác thực sau đây:

Liệt kê người dùng và ứng dụng Chat trong một không gian có phương thức xác thực người dùng

Để liệt kê người dùng và ứng dụng Chat trong một không gian mà người dùng đã xác thực có quyền truy cập, hãy chuyển nội dung sau đây vào yêu cầu của bạn:

Ví dụ sau đây liệt kê các thành viên không gian là người thực hiện (không phải người quản lý không gian) mà người dùng đã xác thực có thể nhìn thấy vì filter được đặt thành ROLE_Member:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_member_list_user.py.
  2. Đưa mã sau vào chat_member_list_user.py:

    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"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists human space members (but not space managers) in a
        specified space.
        '''
    
        # 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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế SPACE bằng tên không gian. Bạn có thể lấy tên này từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_member_list_user.py
    

API Google Chat trả về danh sách các thành viên trong không gian (không bao gồm người quản lý không gian) và thành viên ứng dụng của không gian đã chỉ định.

Liệt kê người dùng và ứng dụng Chat trong một không gian có phương thức xác thực ứng dụng

Để liệt kê người dùng và ứng dụng Chat trong một không gian mà ứng dụng đã xác thực có quyền truy cập, hãy chuyển nội dung sau đây vào yêu cầu của bạn:

Ví dụ sau liệt kê các thành viên không gian là người thực hiện (không phải người quản lý không gian) mà ứng dụng Chat nhìn thấy:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_member_list_app.py.
  2. Đưa mã sau vào chat_member_list_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. Trong mã, hãy thay thế SPACE bằng tên không gian. Bạn có thể lấy tên này từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_member_list_app.py
    

API Google Chat trả về danh sách thành viên của không gian (không bao gồm người quản lý không gian) từ không gian đã chỉ định.

Tuỳ chỉnh tính năng phân trang hoặc lọc danh sách

Để liệt kê các thành viên, hãy truyền các tham số truy vấn sau để tuỳ chỉnh cách phân trang hoặc lọc các thành viên được liệt kê:

  • pageSize: Số lượng hội viên tối đa mà người dùng có thể quay lại. Dịch vụ có thể trả về ít hơn giá trị này. Nếu không chỉ định, thì hệ thống sẽ trả về tối đa 100 dấu cách. Giá trị tối đa là 1.000; các giá trị trên 1.000 sẽ tự động chuyển thành 1.000.
  • pageToken: Mã thông báo trang, nhận được từ lệnh gọi trước đó trong không gian danh sách. Cung cấp mã thông báo này để truy xuất trang tiếp theo. Khi phân trang, giá trị bộ lọc phải khớp với lệnh gọi đã cung cấp mã thông báo trang. Việc chuyển một giá trị khác có thể dẫn đến kết quả không mong muốn.
  • filter: Bộ lọc cụm từ tìm kiếm. Yêu cầu xác thực người dùng. Để biết thông tin chi tiết về truy vấn được hỗ trợ, hãy xem phương thức spaces.members.list.