Hướng dẫn 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ênSpace
của Google Chat API để 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ể dùng Chat API để quản lý không gian có tên. Không gian có tên được xác định là một SpaceType
của SPACE
. Không gian có tên là những nơi ổn định để mọi người gửi tin nhắn, chia sẻ tệp và cộng tác. Bạn không thể dùng Chat API để 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à các ứ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 như sau:
- 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 từ 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 ổn đị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 Chat API để tìm kiếm và quản lý các không gian có tên trong tổ chức của mình theo những cách sau:
- Kiểm tra không gian trong tổ chức. Bằng cách sử dụ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 cách sử dụng phương thức
search()
, bạn có thể tìm thấy những khoảng trống chưa được sử dụng kể từ một ngày và giờ cụ thể, rồi xoá chúng. Để biết thêm thông tin chi tiết và mã mẫu, hãy xem phần 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 trongquery
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ứcmembers.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 không gian không có người quản lý được chỉ định. Bằng cách sử dụ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ứcmembers.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
- Tài khoản Google Workspace Business hoặc Enterprise có quyền truy cập vào Google Chat.
- Thiết lập môi trường:
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình đồng ý OAuth.
- Bật và định cấu hình Google Chat API bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat của bạn.
- Cài đặt Thư viện ứng dụng Google API cho Python.
-
Tạo thông tin đăng nhập mã ứng dụng khách OAuth cho một ứng dụng dành cho máy tính. Để chạy mẫu trong hướng dẫn này, hãy lưu thông tin đăng nhập dưới dạng tệp JSON có tên là
credentials.json
vào thư mục cục bộ của bạn.
- Chọn một phạm vi uỷ quyền hỗ trợ xác thực người dùng.
- 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 của bạn trên Google Workspace.
Gọi API Google Chat với tư cách là quản trị viên
Để xác thực với tư cách là người dùng có đặc quyền quản trị, bạn phải truyền các thông tin sau trong yêu cầu của mình:
- Chỉ định một phạm vi uỷ quyền hỗ trợ việc sử dụng phương thức xác thực người dùng có đặc quyền của quản trị viên.
- Đặt trường
useAdminAccess
thànhtrue
.
Phần này trình bày các ví dụ sau đây về cách gọi Chat API với tư cách là quản trị viên:
- Tìm kiếm không gian bằng cách gọi phương thức
search()
. - Tìm và xoá các không gian không hoạt động trong tổ chức của bạn bằng cách gọi phương thức
search()
để trả về danh sách các không gian không hoạt động, sau đó gọi phương thứcdelete()
để xoá các không gian đó.
Tìm kiếm không gian trong tổ chức của bạn
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 Chat API để tìm kiếm các không gian trong một tổ chức dựa trên các tiêu chí được chỉ định.
Để gọi phương thức search()
bằng xác thực người dùng và đặc quyền quản trị viên, bạn phải chỉ định những thông tin sau trong yêu cầu:
- Chỉ định phạm vi uỷ quyền
chat.admin.spaces
hoặcchat.admin.spaces.readonly
. - Chỉ định
useAdminAccess=true
. - Chỉ định các tham số tìm kiếm
query
để lọc kết quả: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ị duy nhất được hỗ trợ làSPACE
- Bạn có thể thêm một hoặc nhiều cụm từ tìm kiếm khác để lọc thêm nội dung 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 trong không gian (lastActiveTime
).
Đoạn mã sau đây minh hoạ cách sử dụng đặc quyền quản trị viên để tìm kiếm các không gian có tên hiển thị chứa "Hello" và "World", theo mọi tổ hợp:
Python
- 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
. 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)
Trong thư mục làm việc, hãy tạo và chạy mẫu:
python3 search_spaces_for_hello_world.py
Tìm và xoá 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 Chat API để 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
.
Những 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 thường xuyên) có thể chiếm nhiều dung lượng lưu trữ và gây lộn xộn trong giao diện người dùng. Khi sử dụng phương thức search()
, quản trị viên có thể tìm thấy những không gian chưa đượ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 các thao tác đối với các không gian đó, chẳng hạn như cập nhật hoặc xoá.
Để tìm danh sách các không gian không hoạt động rồi xoá các không gian đó bằng xác thực người dùng và đặc quyền quản trị viên, hãy truyền các thông tin sau trong yêu cầu của bạn:
- Để tìm kiếm các không gian không hoạt động, hãy chỉ định những thông tin sau:
- Chỉ định phạm vi uỷ quyền
chat.admin.spaces
hoặcchat.admin.spaces.readonly
. - Gọi phương thức
search()
trên tài nguyênSpaces
. - Đặ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 khoảng trống sẽ được trả về. - Chỉ định
useAdminAccess=true
. - Chỉ định các tham số tìm kiếm
query
để lọc kết quả: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ị duy nhất được hỗ trợ 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ỉ địnhlastActiveTime
- Chỉ định phạm vi uỷ quyền
- Để xoá các không gian không hoạt động khỏi kết quả tìm kiếm, hãy chỉ định những 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ênSpaces
. - Chỉ định
useAdminAccess=true
.
- Chỉ định phạm vi uỷ quyền
Đoạn mã sau đây cho thấy ví dụ về cách tìm kiếm các không gian không hoạt động và xoá chúng bằng đặc quyền quản trị viên:
Python
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
.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()
Trong mã, hãy thay thế
INACTIVE_DATE
bằng ngày và giờ ở định dạng YYYY-MM-DDTHH:MM:SS+HH:MM. Ví dụ: "2024-06-01T00:00:00+00:00".Trong thư mục làm việc, hãy tạo và chạy mẫu:
python3 find_and_delete_inactive_spaces.py
Chủ đề có liên quan
- Xoá không gian
- Liệt kê các thành viên trong một không gian
- Quản lý không gian trên Chat với tư cách là quản trị viên Google Workspace
- Phương thức
spaces.search()