Tìm và quản lý phòng Google Chat cho tổ chức của bạn trên Google Workspace

Hướng dẫn này giải thích cách quản trị viên Google Workspace có thể sử dụng search() phương thức trên Space tài nguyên của API Google Chat để quản lý các không gian có tên trong tổ chức và thực hiện các tác vụ quản trị.

Là quản trị viên Google Workspace, bạn chỉ có thể sử dụng API Chat để quản lý các không gian có tên, được xác định là SpaceType của SPACE. Không gian có tên là những nơi cố định để mọi người gửi tin nhắn, chia sẻ tệp và cộng tác. Bạn không thể sử dụng API Chat để quản lý tin nhắn trực tiếp (DM) hoặc cuộc trò chuyện nhóm.

Tài nguyên Space đại diện cho một nơi mà mọi người và ứng dụng Chat có thể gửi tin nhắn, chia sẻ tệp và cộng tác. Có một số loại không gian:

  • Tin nhắn trực tiếp (DM) là cuộc trò chuyện giữa hai người dùng hoặc giữa một người dùng và một ứng dụng Chat.
  • Cuộc trò chuyện nhóm là cuộc trò chuyện giữa 3 người dùng trở lên và các ứng dụng Chat.
  • Không gian có tên là những nơi cố định để mọi người gửi tin nhắn, chia sẻ tệp và cộng tác.

Là quản trị viên Google Workspace, bạn có thể sử dụng API Chat để tìm kiếm và quản lý các không gian có tên trong tổ chức theo những cách sau:

  • Kiểm tra không gian trong tổ chức. Bằng phương thức search(), bạn có thể truy xuất danh sách tất cả các không gian trong một tổ chức cùng với thông tin chi tiết về chế độ cài đặt và siêu dữ liệu của từng không gian, chẳng hạn như ngày tạo, ngày hoạt động gần đây nhất, số lượng thành viên, trạng thái của chế độ cài đặt nhật ký và khả năng mời khách bên ngoài.
  • Tìm và xoá các không gian không hoạt động. Bằng phương thức search(), bạn có thể tìm những không gian không được sử dụng kể từ một ngày và giờ cụ thể, sau đó xoá các không gian đó. Để biết thêm thông tin chi tiết và mã mẫu, hãy xem Tìm và xoá các không gian không hoạt động.
  • Xuất danh sách không gian dựa trên tiêu chí tìm kiếm. Bằng phương thức search(), bạn có thể truy xuất danh sách các không gian đáp ứng tiêu chí được chỉ định trong query và xuất kết quả sang tệp CSV để phân tích.
  • Tìm và liên hệ với người quản lý không gian. Bằng phương thức search() bạn có thể truy xuất danh sách tất cả các không gian trong một tổ chức, sau đó sử dụng phương thức members.list() để truy xuất danh sách tất cả các thành viên không gian là người quản lý.
  • Tìm các không gian không có người quản lý được chỉ định. Bằng phương thức search(), bạn có thể truy xuất danh sách tất cả các không gian trong một tổ chức, sau đó sử dụng phương thức members.list() để truy xuất danh sách các không gian không có người quản lý.

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

Python

  • Bạn phải có đặc quyền quản trị viên Quản lý cuộc trò chuyện và không gian trên Chat cho tổ chức Google Workspace của mình.

Gọi API Google Chat với tư cách quản trị viên

Để xác thực với tư cách người dùng có đặc quyền quản trị viên, bạn phải truyền các thông tin sau trong yêu cầu:

  • Chỉ định một phạm vi uỷ quyền hỗ trợ sử dụng tính năng xác thực người dùng với đặc quyền quản trị viên.
  • Đặt trường useAdminAccess thành true.

Phần này trình bày các ví dụ sau về cách gọi API Chat với tư cách quản trị viên:

Tìm kiếm không gian trong tổ chức

Ví dụ này giải thích cách quản trị viên Google Workspace có thể sử dụng phương thức search() trên tài nguyên Space của API Chat để tìm kiếm không gian trong một tổ chức dựa trên tiêu chí được chỉ định.

Để gọi phương thức search() bằng tính năng xác thực người dùngđặc quyền quản trị viên, bạn phải chỉ định các thông tin sau trong yêu cầu:

  • Chỉ định chat.admin.spaces hoặc chat.admin.spaces.readonly phạm vi uỷ quyền.
  • Chỉ định useAdminAccess=true.
    • Chỉ định các tham số tìm kiếm để lọc kết quả:query
    • customer = "customers/my_customer" – bắt buộc và giá trị duy nhất được hỗ trợ là customers/my_customer
    • spaceType = "SPACE" – bắt buộc và giá trị được hỗ trợ duy nhất là SPACE
    • Không bắt buộc: một hoặc nhiều truy vấn bổ sung để lọc thêm kết quả tìm kiếm không gian, chẳng hạn như từ khoá trong tên hiển thị (displayName), ngày tạo (createTime) hoặc dựa trên hoạt động của không gian (lastActiveTime).

Mã sau đây minh hoạ cách sử dụng đặc quyền quản trị viên để tìm kiếm không gian có tên hiển thị chứa "Hello" và "World" theo bất kỳ tổ hợp nào:

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    SCOPES = [
      'https://www.googleapis.com/auth/chat.admin.spaces.readonly',
    ]
    
    def main():
    # Authenticate with Google Workspace
    # and get user authorization.
    flow = InstalledAppFlow.from_client_secrets_file(
        'credentials.json',
        SCOPES,
    )
    creds = flow.run_local_server()
    
    # Build a service endpoint for Chat API.
    chat = build('chat', 'v1', credentials=creds)
    
    spaces = []
    page_token = ''
    
    # Search for all spaces.
    while True:
      result = (
          chat.spaces()
          .search(
              useAdminAccess=True,
              query=(
                'customer = "customers/my_customer"'
                'AND spaceType = "SPACE"'
                'AND displayName:"Hello World"'
                )
    pageToken=page_token,
          )
          .execute()
      )
      if 'spaces' not in result:
        print('No spaces found named Hello World.')
        return
      spaces.extend(result['spaces'])
      if 'nextPageToken' in result:
        page_token = result['nextPageToken']
      else:
        break
    
    print(str(len(spaces)) + ' spaces found:')
    # Prints the list of spaces.
    print(spaces)
    
  3. Trong thư mục làm việc, hãy tạo bản dựng và chạy mẫu:

    python3 search_spaces_for_hello_world.py

Tìm và xoá các không gian không hoạt động

Ví dụ này giải thích cách quản trị viên Google Workspace có thể sử dụng phương thức search() trên tài nguyên Space của API Chat để tìm các không gian không hoạt động, sau đó xoá các không gian đó bằng phương thức delete() với tham số useAdminAccess.

Các không gian không hoạt động trên Google Chat (những không gian không còn được sử dụng tích cực) có thể chiếm dung lượng lưu trữ quý giá và tạo sự lộn xộn trong giao diện người dùng. Bằng phương thức search(), quản trị viên có thể tìm những không gian không được sử dụng kể từ một ngày và giờ cụ thể, chẳng hạn như 2 tháng trước. Sau khi liệt kê danh sách không gian, quản trị viên có thể thực hiện hành động đối với các không gian đó, chẳng hạn như cập nhật hoặc xoá.

Để tìm kiếm danh sách các không gian không hoạt động, sau đó xoá các không gian đó bằng tính năng xác thực người dùngđặc quyền quản trị viên, hãy truyền các thông tin sau trong yêu cầu:

  • Để tìm kiếm các không gian không hoạt động, hãy chỉ định các thông tin sau:
    • Chỉ định chat.admin.spaces hoặc chat.admin.spaces.readonly phạm vi uỷ quyền.
    • Gọi phương thức search() trên tài nguyên Spaces.
    • Đặt INACTIVE_SPACE_DEADLINE thành ngày và giờ của hoạt động gần đây nhất xác định các không gian sẽ được trả về.
    • Chỉ định useAdminAccess=true.
      • Chỉ định các tham số tìm kiếm để lọc kết quả:query
      • customer = "customers/my_customer" – bắt buộc và giá trị được hỗ trợ duy nhất là customers/my_customer
      • spaceType = "SPACE" – bắt buộc và giá trị được hỗ trợ duy nhất là SPACE
      • lastActiveTime – để lọc yêu cầu chỉ trả về các không gian không hoạt động, hãy chỉ định lastActiveTime
  • Để xoá các không gian không hoạt động khỏi kết quả tìm kiếm, hãy chỉ định các thông tin sau:
    • Chỉ định phạm vi uỷ quyền chat.admin.delete.
    • Gọi phương thức delete() trên tài nguyên Spaces.
    • Chỉ định useAdminAccess=true.

Mã sau đây minh hoạ cách tìm kiếm các không gian không hoạt động và xoá các không gian đó bằng đặc quyền quản trị viên:

Python

  1. Trong thư mục làm việc, hãy tạo một tệp có tên là find_and_delete_inactive_spaces.py.

  2. Thêm mã sau vào find_and_delete_inactive_spaces.py:

    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    SCOPES = [
        'https://www.googleapis.com/auth/chat.admin.spaces.readonly',
        'https://www.googleapis.com/auth/chat.admin.delete',
    ]
    
    # Any spaces that have not been active since this time will be deleted.
    INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"'
    
    def main():
      # Authenticate with Google Workspace
      # and get user authorization.
      flow = InstalledAppFlow.from_client_secrets_file(
          'credentials.json',
          SCOPES,
      )
      creds = flow.run_local_server()
    
      # Build a service endpoint for Chat API.
      chat = build('chat', 'v1', credentials=creds)
    
      spaces = []
      page_token = ''
    
      # Search for all inactive spaces.
      while True:
        result = (
            chat.spaces()
            .search(
                useAdminAccess=True,
                query=(
                    'customer = "customers/my_customer" AND spaceType = "SPACE" AND'
                    ' lastActiveTime < '
                )
                + INACTIVE_SPACE_DEADLINE,
                pageToken=page_token,
            )
            .execute()
        )
        if 'spaces' not in result:
          print('No inactive spaces found.')
          return
        spaces.extend(result['spaces'])
        if 'nextPageToken' in result:
          page_token = result['nextPageToken']
        else:
          break
    
      print(str(len(spaces)) + ' inactive spaces found:')
      # Prints the list of inactive spaces.
      print(spaces)
    
      # Delete all inactive spaces.
      for space in spaces:
        (
            chat.spaces()
            .delete(
                useAdminAccess=True,
                name=space['name'],
            )
            .execute()
        )
        print(
            'Deleted space: '
            + space['displayName']
            + ', Resource Name: '
            + space['name']
        )
    
    if __name__ == '__main__':
      main()
    
  3. Trong mã, hãy thay thế INACTIVE_DATE bằng ngày và giờ ở dạng YYYY-MM-DDTHH:MM:SS+HH:MM. Ví dụ: "2024-06-01T00:00:00+00:00".

  4. Trong thư mục làm việc, hãy tạo bản dựng và chạy mẫu:

    python3 find_and_delete_inactive_spaces.py