คำแนะนำนี้จะอธิบายวิธีใช้เมธอด upload
ในทรัพยากร Media
ของ Google Chat API เพื่ออัปโหลดสื่อ (ไฟล์) ไปยัง Google Chat และแนบไปกับข้อความ
เมื่อผู้ใช้ส่งข้อความไปยังแอปของคุณ Google Chat จะส่งเหตุการณ์การโต้ตอบ MESSAGE
เหตุการณ์การโต้ตอบที่แอปของคุณได้รับจะมีเนื้อหาคําขอ ซึ่งก็คือเพย์โหลด JSON ที่แสดงถึงเหตุการณ์การโต้ตอบ รวมถึงไฟล์แนบต่างๆ ด้วย ข้อมูลในไฟล์แนบจะแตกต่างกันไปตามไฟล์แนบที่เป็นเนื้อหาที่อัปโหลด (ไฟล์ในเครื่อง) หรือเป็นไฟล์ที่เก็บไว้ในไดรฟ์ แหล่งข้อมูล Media
แสดงถึงไฟล์ที่อัปโหลดไปยัง Google Chat เช่น รูปภาพ วิดีโอ และเอกสาร
ทรัพยากร Attachment
เป็นตัวแทนของสื่อ ซึ่งก็คือไฟล์ที่แนบมากับข้อความ ทรัพยากร Attachment
จะมีข้อมูลเมตาเกี่ยวกับไฟล์แนบ เช่น ตำแหน่งที่บันทึกไฟล์แนบ
ข้อกำหนดเบื้องต้น
Python
- Python 3.6 ขึ้นไป
- เครื่องมือการจัดการแพ็กเกจ pip
ไลบรารีของไคลเอ็นต์ Google ล่าสุดสำหรับ Python หากต้องการติดตั้งหรืออัปเดต ให้เรียกใช้คำสั่งต่อไปนี้ในอินเทอร์เฟซบรรทัดคำสั่ง
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- โปรเจ็กต์ Google Cloud ที่เปิดใช้และกำหนดค่า Google Chat API โปรดดูขั้นตอนที่หัวข้อสร้างแอป Google Chat
กำหนดค่าการให้สิทธิ์สำหรับแอป Chat แล้ว การอัปโหลดสื่อเป็นไฟล์แนบต้องมีการตรวจสอบสิทธิ์ของผู้ใช้โดยใช้ขอบเขตการให้สิทธิ์
chat.messages.create
หรือchat.messages
อัปโหลดเป็นไฟล์แนบ
หากต้องการอัปโหลดสื่อและแนบไปกับข้อความ ให้ส่งข้อมูลต่อไปนี้ในคำขอ
- ระบุขอบเขตการให้สิทธิ์
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