Liệt kê thành viên trong 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ê các thành viên trong một không gian dưới dạng danh sách thành viên có thể phân trang và có thể lọc trong một không gian. Chế độ xác thực ứng dụng của trang thông tin liệt kê tư cách 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 trong ứng dụng Chat, kể cả không gian của ứng dụng Chat. Trạng thái thành viên của trang thông tin có phần Xác thực người dùng liệt kê thành viên trong những 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 việc người dùng hoặc ứng dụng Google Chat được mời tham gia, tham gia một phần hay vắng mặt trong một 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à định cấu hình 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 quá trình uỷ quyền cho ứng dụng Chat. Gói thành viên của trang thông tin hỗ trợ cả hai phương thức xác thực sau:

Liệt kê thành viên trong một không gian có xác thực người dùng

Để liệt kê người dùng, nhóm trên Google Groups 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 truyền nội dung sau vào yêu cầu của bạn:

  • Với tính năng xác thực người dùng, hãy chỉ định phạm vi uỷ quyền chat.memberships.readonly hoặc chat.memberships.
  • Gọi phương thức list trên tài nguyên membership.
  • Để liệt kê các nhóm trên Google Groups, hãy đặt tham số truy vấn showGroups thành true.

Ví dụ sau liệt kê nhóm Google, người và thành viên trong ứng dụng mà người dùng đã xác thực 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_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 Google Group, human, and app members 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',
    
            # Set this parameter to list Google Groups.
            showGroups = 'true'
    
        ).execute()
    
        # Prints the list of memberships.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấ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 Nhóm Google, người và ứng dụng từ không gian được chỉ định.

Liệt kê thành viên trong một không gian 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 truyền nội dung sau vào yêu cầu của bạn:

  • Với tính năng xác thực ứng dụng, hãy chỉ định phạm vi uỷ quyền chat.bot.
  • Gọi phương thức list trên tài nguyên member.
  • Để liệt kê các nhóm trên Google Groups, hãy đặt tham số truy vấn showGroups thành true.

Ví dụ sau đây liệt kê các thành viên của không gian là người (không phải người quản lý không gian) mà ứng dụng Chat có thể 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 đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấ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 không gian của con người (ngoại trừ người quản lý không gian) từ không gian được chỉ định.

Tuỳ chỉnh chế độ phân trang hoặc lọc danh sách

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

  • pageSize: Số lượng gói hội viên tối đa cần trả lại. Dịch vụ có thể trả về ít hơn giá trị này. Nếu không chỉ định, 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ị lớn hơn 1.000 sẽ tự động thay đổi thành 1.000.
  • pageToken: Mã thông báo trang, nhận được từ một lệnh gọi không gian danh sách trước đó. Hãy 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 truy vấn. Yêu cầu xác thực người dùng. Để biết thông tin chi tiết được hỗ trợ về truy vấn, hãy xem phương thức spaces.members.list.