คู่มือนี้จะอธิบายวิธีใช้เมธอด upload
ในทรัพยากร Media
ของ Google Chat API เพื่ออัปโหลดสื่อ (ไฟล์) ไปยัง Google Chat แล้วแนบไปกับข้อความ
เมื่อผู้ใช้ส่งข้อความไปยังแอป Google Chat จะส่งMESSAGE
เหตุการณ์การโต้ตอบ
เหตุการณ์การโต้ตอบที่แอปได้รับจะมีเนื้อหาคำขอ ซึ่งเป็นเพย์โหลด JSON ที่แสดงถึงเหตุการณ์การโต้ตอบ รวมถึงไฟล์แนบ ข้อมูลในไฟล์แนบจะแตกต่างกันไปโดยขึ้นอยู่กับว่าไฟล์แนบเป็นเนื้อหาที่อัปโหลด (ไฟล์ในเครื่อง) หรือเป็นไฟล์ที่เก็บไว้ในไดรฟ์ Media
ทรัพยากรแสดงไฟล์ที่อัปโหลดไปยัง Google Chat เช่น รูปภาพ วิดีโอ และเอกสาร
แหล่งข้อมูลAttachment
แสดงถึงอินสแตนซ์ของสื่อ ซึ่งเป็นไฟล์ที่แนบมากับข้อความ Attachment
ทรัพยากรจะมีข้อมูลเมตาเกี่ยวกับไฟล์แนบ เช่น ตำแหน่งที่บันทึกไฟล์แนบ
ข้อกำหนดเบื้องต้น
Python
- บัญชี Google Workspace รุ่น Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat
- ตั้งค่าสภาพแวดล้อมโดยทำดังนี้
- สร้างโปรเจ็กต์ Google Cloud
- กำหนดค่าหน้าจอขอความยินยอม OAuth
- เปิดใช้และกําหนดค่า Google Chat API พร้อมตั้งชื่อ ไอคอน และคําอธิบายสําหรับแอป Chat
- ติดตั้ง ไลบรารีของไคลเอ็นต์ Google API สำหรับ Python
-
สร้างข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ OAuth สําหรับแอปพลิเคชันบนเดสก์ท็อป หากต้องการเรียกใช้ตัวอย่างในคู่มือนี้ ให้บันทึกข้อมูลเข้าสู่ระบบเป็นไฟล์ JSON ชื่อ
client_secrets.json
ลงในไดเรกทอรีในเครื่อง
- เลือกขอบเขตการให้สิทธิ์ที่รองรับการตรวจสอบสิทธิ์ผู้ใช้
อัปโหลดเป็นไฟล์แนบ
หากต้องการอัปโหลดสื่อและแนบไปกับข้อความ ให้ส่งข้อมูลต่อไปนี้ในคำขอ
- ระบุขอบเขตการให้สิทธิ์
chat.messages.create
หรือchat.messages
- เรียกใช้เมธอดต่อไปนี้ของ Google Chat
- หากต้องการอัปโหลดไฟล์ ให้เรียกใช้เมธอด
upload
ในทรัพยากรMedia
- ตั้งค่า
parent
เป็นชื่อพื้นที่ทำงานของพื้นที่ทำงานที่โฮสต์ไฟล์ - ใน
body
(เนื้อหาคำขอ) ให้ตั้งค่าfilename
เป็นชื่อไฟล์แนบที่อัปโหลด - ตั้งค่า
media_body
เป็นอินสแตนซ์ของไฟล์ที่จะอัปโหลด
- ตั้งค่า
- หากต้องการสร้างข้อความโดยแนบไฟล์ที่อัปโหลด ให้เรียกใช้เมธอด
create
ในแหล่งข้อมูลMessages
- ตั้งค่า
attachment
เป็นคำตอบจากการเรียกใช้เมธอดupload
ในทรัพยากรMedia
ฟิลด์attachment
ยอมรับรายการ
- ตั้งค่า
- หากต้องการอัปโหลดไฟล์ ให้เรียกใช้เมธอด
ตัวอย่างต่อไปนี้จะอัปโหลดไฟล์ภาพ PNG และแนบไปกับข้อความ
Python
- ในไดเรกทอรีทํางาน ให้สร้างไฟล์ชื่อ
chat_media_and_attachment_upload.py
ใส่รหัสต่อไปนี้ใน
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()
ในโค้ด ให้แทนที่
SPACE
ด้วยชื่อพื้นที่ทำงานเพื่ออัปโหลดไฟล์แนบ ซึ่งคุณรับได้จากเมธอดspaces.list
ใน Chat API หรือจาก URL ของพื้นที่ทำงานในไดเรกทอรีทํางาน ให้สร้างและเรียกใช้ตัวอย่าง ดังนี้
python3 chat_media_and_attachment_upload.py
Chat API จะแสดงผลเนื้อหาการตอบกลับที่มี attachmentDataRef
พร้อมรายละเอียดเกี่ยวกับไฟล์ที่อัปโหลด
ข้อจำกัดและข้อควรพิจารณา
เมื่อเตรียมอัปโหลดไฟล์และแนบไฟล์ไปกับข้อความ โปรดคำนึงถึงข้อจำกัดและข้อควรพิจารณาต่อไปนี้
- คุณจะอัปโหลดไฟล์ได้สูงสุด 200 MB
- ระบบไม่รองรับและอัปโหลดไฟล์บางประเภทไม่ได้ โปรดดูรายละเอียดที่หัวข้อประเภทไฟล์ที่ถูกบล็อกใน Google Chat
- ข้อความต้องไม่มีวิดเจ็ตเสริม