Hướng dẫn này giải thích cách sử dụng phương thức upload
trên tài nguyên Media
của
API Google Chat để tải nội dung nghe nhìn (tệp) lên Google Chat rồi đính kèm vào
một tin nhắn.
Khi người dùng gửi tin nhắn đến ứng dụng của bạn, Google Chat sẽ gửi một
Sự kiện tương tác MESSAGE
.
Sự kiện tương tác mà ứng dụng của bạn nhận được có chứa nội dung yêu cầu, đó là
Tải trọng JSON đại diện cho sự kiện tương tác, bao gồm cả mọi tệp đính kèm. Chiến lược phát hành đĩa đơn
dữ liệu trong tệp đính kèm sẽ khác nhau tuỳ thuộc vào việc tệp đính kèm đó
nội dung được tải lên (tệp cục bộ) hoặc là tệp được lưu trữ trên Drive. Chiến lược phát hành đĩa đơn
Tài nguyên Media
biểu thị một tệp được tải lên Google Chat (chẳng hạn như hình ảnh, video và tài liệu).
Chiến lược phát hành đĩa đơn
Tài nguyên Attachment
thể hiện một bản sao của nội dung nghe nhìn (một tệp) được đính kèm vào thư. Attachment
tài nguyên bao gồm siêu dữ liệu về tệp đính kèm, chẳng hạn như
tại nơi lưu mật khẩu.
Điều kiện tiên quyết
Python
- Doanh nghiệp Tài khoản Google Workspace 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 xin phép bằng OAuth.
- Bật và định cấu hình API Google Chat bằng tên, biểu tượng và nội dung mô tả cho ứng dụng Chat.
- Cài đặt Python Thư viện ứng dụng API của Google.
-
Tạo thông tin xác thực 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ãy lưu thông tin đăng nhập dưới dạng tệp JSON có tên
client_secrets.json
vào thư mục nội bộ.
- Chọn phạm vi uỷ quyền có hỗ trợ việc xác thực người dùng.
Tải lên dưới dạng tệp đính kèm
Để tải nội dung nghe nhìn lên và đính kèm vào thư, hãy truyền nội dung sau vào yêu cầu::
- Chỉ định phạm vi uỷ quyền
chat.messages.create
hoặcchat.messages
. - Gọi các phương thức sau đây của Google Chat:
- Để tải tệp lên, hãy gọi phương thức
Phương thức
upload
trên tài nguyênMedia
.- Đặt
parent
thành tên không gian của không gian lưu trữ tệp. - Trong
body
(nội dung yêu cầu), hãy đặtfilename
thành tên của tệp đã tải lên tệp đính kèm. - Đặt
media_body
làm phiên bản của tệp cần tải lên.
- Đặt
- Để tạo thư có đính kèm tệp đã tải lên, hãy gọi hàm
Phương thức
create
trênMessages
tài nguyên.- Đặt
attachment
làm phản hồi bằng cách gọi phương thức Phương thứcupload
trên Tài nguyênMedia
.attachment
trường sẽ chấp nhận danh sách.
- Đặt
- Để tải tệp lên, hãy gọi phương thức
Phương thức
Ví dụ sau đây tải tệp hình ảnh PNG lên và đính kèm tệp đó vào thư.
Python
- Trong thư mục đang làm việc, hãy tạo một tệp có tên
chat_media_and_attachment_upload.py
. Đưa mã sau vào
chat_media_and_attachment_upload.py
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.http import MediaFileUpload # 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.create"] def main(): ''' Authenticates with Chat API via user credentials, then uploads a file as media, creates a message, and attaches the file to the 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. service = build('chat', 'v1', credentials=creds) # Upload a file to Google Chat. media = MediaFileUpload('test_image.png', mimetype='image/png') # Create a message and attach the uploaded file to it. attachment_uploaded = service.media().upload( # The space to upload the attachment in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The filename of the attachment, including the file extension. body={'filename': 'test_image.png'}, # Media resource of the attachment. media_body=media ).execute() print(attachment_uploaded) # Create a Chat message with attachment. result = service.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Must match the space name that the attachment is uploaded to. parent='spaces/SPACE', # The message to create. body={ 'text': 'Hello, world!', 'attachment': [attachment_uploaded] } ).execute() print(result) if __name__ == '__main__': main()
Trong mã, thay thế
SPACE
bằng tên không gian để bạn có thể tải tệp đính kèm lên từ Phương thứcspaces.list
trong API Chat hoặc qua URL của một không gian.Trong thư mục đang làm việc, hãy tạo và chạy mẫu:
python3 chat_media_and_attachment_upload.py
API Chat trả về nội dung phản hồi chứa
attachmentDataRef
có thông tin chi tiết về tệp đã tải lên.
Giới hạn và cân nhắc
Khi bạn chuẩn bị tải tệp lên và đính kèm tệp vào thư, hãy ghi lại những điều này giới hạn và những điều cần cân nhắc:
- Bạn có thể tải lên tệp có kích thước tối đa 200 MB.
- Một số loại tệp không được hỗ trợ và không thể tải lên được. Để biết thông tin chi tiết, hãy xem Các loại tệp bị chặn trong Google Chat.
- Bạn không được bỏ qua tin nhắn này tiện ích phụ kiện.