Google Drive API เวอร์ชันล่าสุดคือ v3 ประสิทธิภาพในเวอร์ชัน 3 ดีขึ้นเนื่องจากการค้นหา จะแสดงเฉพาะฟิลด์ย่อย ใช้เวอร์ชันปัจจุบัน เว้นแต่ว่าคุณต้องใช้คอลเล็กชัน v2 หากคุณใช้เวอร์ชัน 2 ให้ลอง ย้ายข้อมูลไปยังเวอร์ชัน 3 หากต้องการย้ายข้อมูล โปรดดูหัวข้อย้ายข้อมูลไปยัง Drive API v3 โปรดดูรายการความแตกต่างของเวอร์ชันทั้งหมดได้ที่ข้อมูลอ้างอิงการเปรียบเทียบ Drive API v2 และ v3
หากต้องการใช้เวอร์ชัน 2 ต่อไป โปรดดูการแก้ไขคู่มือสำหรับ Drive API v2 เพื่อดูวิธีแก้ไขวิธีการบางอย่างในคู่มือเวอร์ชัน 3 สำหรับนักพัฒนาซอฟต์แวร์เวอร์ชัน 2
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการปรับปรุง Drive API v3 โปรดดูวิดีโอต่อไปนี้ซึ่งวิศวกรของ Google พูดถึงการออกแบบ API ใหม่
การปรับปรุง V3
v3 มีการปรับปรุงต่อไปนี้จาก API เวอร์ชันก่อนหน้า เพื่อเพิ่มประสิทธิภาพและลดความซับซ้อนของลักษณะการทำงานของ API
- โดยค่าเริ่มต้น การค้นหาไฟล์และไดรฟ์ที่แชร์จะไม่แสดงทรัพยากรทั้งหมด แต่จะแสดงเฉพาะช่องบางส่วนที่ใช้กันทั่วไปเท่านั้น ดูรายละเอียดเพิ่มเติมเกี่ยวกับ
fields
ได้จากเมธอดfiles.list
และเมธอดdrives.list
- ตอนนี้เกือบทุกเมธอดที่แสดงการตอบกลับต้องใช้พารามิเตอร์
fields
ดูรายการเมธอดทั้งหมดที่ต้องใช้fields
ได้ที่ เอกสารอ้างอิง Drive API - ระบบได้นำทรัพยากรที่มีความสามารถซ้ำกันออกแล้ว ตัวอย่างเช่น
- เมธอด
files.list
มีฟังก์ชันการทำงานเหมือนกับคอลเล็กชันChildren
และParents
จึงถูกนำออกจากเวอร์ชัน 3 - นำเมธอด
Realtime.*
ออกแล้ว
- เมธอด
- ระบบจะไม่แสดงผลข้อมูลแอปโดยค่าเริ่มต้นในการค้นหา ในเวอร์ชัน 2 คุณจะกําหนดขอบเขต
drive.appdata
ได้ ซึ่งจะแสดงผลข้อมูลแอปพลิเคชันจากเมธอดfiles.list
และchanges.list
แต่จะทำให้ประสิทธิภาพช้าลง ในเวอร์ชัน 3 คุณจะต้องกำหนดขอบเขตระดับdrive.appdata
และตั้งค่าพารามิเตอร์การค้นหาspaces=appDataFolder
เพื่อขอข้อมูลแอปพลิเคชันด้วย - การดำเนินการอัปเดตทั้งหมดใช้ Patch แทน PUT
- หากต้องการส่งออก Google เอกสาร ให้ใช้เมธอด
files.export
- ลักษณะการทำงานของเมธอด
changes.list
จะแตกต่างออกไป ใช้โทเค็นหน้าที่ทึบแสงแทนรหัสการเปลี่ยนแปลง หากต้องการสำรวจการรวบรวมการเปลี่ยนแปลง ให้เรียกเมธอดchanges.getStartPageToken
สำหรับค่าเริ่มต้นก่อน สำหรับการค้นหาครั้งต่อๆ ไป เมธอดchanges.list
จะแสดงผลค่าnewStartPageToken
- ตอนนี้เมธอดการอัปเดตจะปฏิเสธคำขอที่ระบุฟิลด์ที่เขียนไม่ได้
- ช่อง
exportFormats
และimportFormats
เวอร์ชัน 2 ในทรัพยากรabout
เป็นรายการรูปแบบการนำเข้าหรือส่งออกที่อนุญาต ในเวอร์ชัน 3 จะเป็นแมปประเภท MIME ของเป้าหมายที่เป็นไปได้กับการนำเข้าหรือการส่งออกที่รองรับทั้งหมด - ตอนนี้ชื่อแทน v2
appdata
และappfolder
เปลี่ยนเป็นappDataFolder
แล้วใน v3 - นำทรัพยากร
properties
ออกจากเวอร์ชัน 3 แล้ว ทรัพยากรfiles
มีช่องproperties
ที่มีคู่คีย์-ค่าจริง ช่องproperties
มีพร็อพเพอร์ตี้สาธารณะ ส่วนช่องappProperties
มีพร็อพเพอร์ตี้ส่วนตัว จึงไม่จำเป็นต้องระบุช่องระดับการเข้าถึง - ช่อง
modifiedTime
ในแหล่งข้อมูลfiles
จะอัปเดตเมื่อมีผู้แก้ไขไฟล์ครั้งล่าสุด ในเวอร์ชัน 2 ช่องmodifiedDate
จะเปลี่ยนแปลงไม่ได้เมื่ออัปเดตเท่านั้นหากคุณตั้งค่าช่องsetModifiedDate
- ช่อง
viewedByMeTime
ในทรัพยากรfiles
จะไม่อัปเดตโดยอัตโนมัติ - หากต้องการนำเข้ารูปแบบ Google เอกสาร คุณต้องตั้งเป้าหมายที่เหมาะสม
mimeType
ในเนื้อหาทรัพยากร คุณตั้งค่า?convert=true
ในเวอร์ชัน 2 - การดำเนินการนำเข้าจะแสดงข้อผิดพลาด 400 หากระบบไม่รองรับรูปแบบนี้
- ผู้อ่านและผู้แสดงความคิดเห็นจะดูสิทธิ์ไม่ได้
- นำชื่อแทน
me
สำหรับสิทธิ์ออกแล้ว - ฟังก์ชันบางอย่างพร้อมใช้งานโดยเป็นส่วนหนึ่งของทรัพยากรคำขอ แต่มีให้ใช้งานเป็นพารามิเตอร์คำขอแทน เช่น
- ในเวอร์ชัน 2 คุณสามารถใช้
children.delete
เพื่อนำไฟล์ย่อยออกจากโฟลเดอร์หลัก - ในเวอร์ชัน 3 คุณใช้
files.update
กับรายการย่อยที่มี?removeParents=parent_id
ใน URL
- ในเวอร์ชัน 2 คุณสามารถใช้
ความแตกต่างอื่นๆ
ช่องและชื่อพารามิเตอร์ใน v3 จะแตกต่างกัน ตัวอย่างเช่น
- พร็อพเพอร์ตี้
name
แทนที่title
ในทรัพยากรfiles
Time
เป็นคำต่อท้ายของช่องวันที่และเวลาทั้งหมดแทนที่จะเป็นDate
- การดำเนินการของรายการไม่ใช้ช่อง
items
เพื่อเก็บชุดผลลัพธ์ ประเภททรัพยากรมีช่องสำหรับผลลัพธ์ (เช่นfiles
หรือchanges
)