Hướng dẫn này giải thích cách sử dụng phương thức delete
trên tài nguyên Message
của API Google Chat để xoá tin nhắn văn bản hoặc tin nhắn trong thẻ.
Tài nguyên Message
đại diện cho một thông báo văn bản hoặc thẻ trong Google Chat. Bạn có thể create
, get
, update
hoặc delete
cho tin nhắn trong API Google Chat bằng cách gọi các phương thức tương ứng. Để tìm hiểu thêm về tin nhắn văn bản và tin nhắn bằng thẻ, hãy xem bài viết Tổng quan về tin nhắn trong Google Chat.
Đ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 công cụ này, hãy chạy lệnh sau trong giao diện dòng lệnh của bạn:
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. Việc xoá một tin nhắn hỗ trợ cả hai phương thức xác thực sau:
- Xác thực người dùng, với phạm vi uỷ quyền
chat.messages
, có thể xoá các thông báo do người dùng đó tạo. Nếu là Người quản lý không gian, bạn có thể xoá những tin nhắn khác. Để biết thêm thông tin, hãy xem phần Tìm hiểu về vai trò của bạn với tư cách là Người quản lý không gian. - Xác thực ứng dụng, với phạm vi uỷ quyền
chat.bot
, có thể xoá các thông báo do ứng dụng đó tạo bằng tài khoản dịch vụ của ứng dụng.
- Xác thực người dùng, với phạm vi uỷ quyền
Xoá thư có xác thực người dùng
Để xoá một thông báo có chế độ xác thực người dùng, hãy chuyển nội dung sau đây trong yêu cầu của bạn:
- Chỉ định phạm vi uỷ quyền
chat.messages
. - Gọi phương thức
delete
trên tài nguyênMessage
. - Đặt
name
thành tên tài nguyên của thông báo cần xoá.
Ví dụ sau đây sẽ xoá một thông báo bằng phương thức xác thực người dùng:
Python
- Trong thư mục đang làm việc, hãy tạo một tệp có tên là
chat_message_delete_user.py
. Đưa mã sau vào
chat_message_delete_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.messages"] def main(): ''' Authenticates with Chat API via user credentials, then deletes a message. ''' # 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().messages().delete( # The message to delete. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name = 'spaces/SPACE/messages/MESSAGE' ).execute() # Prints response to the Chat API call. # When deleting a message, the response body is empty. print(result) if __name__ == '__main__': main()
Trong mã, hãy thay thế các đoạn mã sau:
SPACE
: tên không gian mà bạn có thể lấy từ phương thứcspaces.list
trong API Chat hoặc từ URL của một không gian.MESSAGE
: tên thông báo mà bạn có thể lấy từ phần nội dung phản hồi được trả về sau khi tạo thông báo không đồng bộ bằng API Chat hoặc bằng tên tuỳ chỉnh được chỉ định cho thông báo khi tạo.
Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
python3 chat_message_delete_user.py
Nếu thành công, nội dung phản hồi sẽ trống, cho biết thông báo đã bị xoá.
Xoá tin nhắn có xác thực ứng dụng
Để xoá một thông báo có xác thực ứng dụng, hãy chuyển nội dung sau vào yêu cầu của bạn:
- Chỉ định phạm vi uỷ quyền
chat.bot
. - Gọi phương thức
delete
trên tài nguyênMessage
. - Đặt
name
thành tên tài nguyên của thông báo cần xoá.
Ví dụ sau đây sẽ xoá một tin nhắn bằng tính năng xác thực ứng dụng:
Python
- Trong thư mục đang làm việc, hãy tạo một tệp có tên là
chat_delete_message_app.py
. Đưa mã sau vào
chat_delete_message_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) # Delete a Chat message. result = chat.spaces().messages().delete( # The message to delete. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MESSAGE with a message name. # Obtain the message name from the response body returned # after creating a message asynchronously with Chat REST API. name='spaces/SPACE/messages/MESSAGE' ).execute() # Print Chat API's response in your command line interface. # When deleting a message, the response body is empty. print(result)
Trong mã, hãy thay thế các đoạn mã sau:
SPACE
:name
của không gian đăng tin nhắn mà bạn có thể lấy từ phương thứcspaces.list
trong API Chat hoặc từ URL của một không gian.MESSAGE
: tên thông báo mà bạn có thể lấy từ phần nội dung phản hồi được trả về sau khi tạo thông báo không đồng bộ bằng API Chat hoặc bằng tên tuỳ chỉnh được chỉ định cho thông báo khi tạo.
Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
python3 chat_delete_message_app.py
Nếu thành công, nội dung phản hồi sẽ trống, cho biết thông báo đã bị xoá.
Chủ đề có liên quan
- Định dạng thư.
- Xem thông tin chi tiết về tin nhắn.
- Liệt kê các tin nhắn trong một không gian.
- Cập nhật thông báo.
- Gửi tin nhắn.