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