คู่มือสำหรับนักพัฒนาซอฟต์แวร์ CalDAV API

CalDAV เป็นส่วนขยายของ WebDAV ที่ให้มาตรฐานสำหรับลูกค้าในการเข้าถึง ข้อมูลปฏิทินบนเซิร์ฟเวอร์ระยะไกล

Google มีอินเทอร์เฟซ CalDAV ที่คุณสามารถใช้เพื่อดูและจัดการปฏิทิน โดยใช้โปรโตคอล CalDAV

ข้อกำหนดเฉพาะ

สำหรับข้อกำหนดเฉพาะที่เกี่ยวข้องแต่ละรายการ การรองรับ CalDAV ของ Google มีดังนี้

  • rfc4918: ส่วนขยาย HTTP สำหรับการเขียนและการกำหนดเวอร์ชันที่เผยแพร่บนเว็บ (WebDAV)
    • รองรับเมธอด HTTP GET, PUT, HEAD, DELETE, POST OPTIONS, PROPFIND และ PROPPATCH
    • ไม่รองรับเมธอด HTTP LOCK, UNLOCK, COPY, MOVE หรือ MKCOL หรือส่วนหัว If* (ยกเว้น If-Match)
    • ไม่รองรับพร็อพเพอร์ตี้ WebDAV ที่กำหนดเอง (กำหนดโดยผู้ใช้)
    • ไม่รองรับ WebDAV Access Control (rfc3744)
  • rfc4791: การขยายปฏิทินไปยัง WebDAV (CalDAV)
    • รองรับเมธอด HTTP REPORT รายงานทั้งหมดยกเว้นข้อมูลว่าง-ไม่ว่าง มีการใช้งาน
    • ไม่รองรับเมธอด HTTP MKCALENDAR
    • ไม่รองรับการดำเนินการ AUDIO
  • rfc5545: iปฏิทิน
    • ข้อมูลที่แสดงในอินเทอร์เฟซ CalDAV ได้รับการจัดรูปแบบตาม ข้อมูลจำเพาะของ iปฏิทิน
    • ขณะนี้ยังไม่รองรับข้อมูล VTODO หรือ VJOURNAL
    • ไม่สนับสนุนส่วนขยาย Apple iCal® เพื่ออนุญาตพร็อพเพอร์ตี้ของ URL ที่ผู้ใช้ตั้งค่าได้
  • rfc6578: การซิงค์คอลเล็กชันสำหรับ WebDAV
    • แอปพลิเคชันไคลเอ็นต์ต้องเปลี่ยนเป็นโหมดนี้หลังจาก การซิงค์ครั้งแรก
  • rfc6638: การตั้งเวลาส่วนขยายให้กับ CalDAV
    • รองรับ "กล่องจดหมาย" ที่ไม่สำคัญ ซึ่งจะว่างเปล่าเสมอ
    • คำเชิญที่คุณได้รับจะส่งไปยัง "กิจกรรม" ของคุณโดยอัตโนมัติ แทนที่จะนำไปไว้ใน "กล่องจดหมาย"
    • ไม่รองรับการค้นหาข้อมูลว่าง-ไม่ว่าง
  • caldav-ctag-02: แท็กเอนทิตีคอลเล็กชันปฏิทิน (CTag) ใน CalDAV
    • ปฏิทิน ctag เป็นเหมือนทรัพยากร etag จะเปลี่ยนเมื่อ ในปฏิทินมีการเปลี่ยนแปลง ซึ่งช่วยให้แอปพลิเคชันไคลเอ็นต์ดำเนินการต่อไปนี้ได้ อย่างรวดเร็วเพื่อตัดสินใจว่าไม่จำเป็นต้องซิงค์ข้อมูลที่เปลี่ยนแปลงไป กิจกรรม
  • calendar-proxy: ฟังก์ชันพร็อกซีของผู้ใช้ปฏิทินใน CalDAV
    • เพื่อปรับปรุงประสิทธิภาพการซิงค์ปฏิทินจากอุปกรณ์ iOS ซึ่ง ไม่รองรับการมอบสิทธิ์โดยใช้ calendar-proxy-read-for หรือ พร็อพเพอร์ตี้ calendar-proxy-write-for ที่มี UserAgent ของ iOS จะดำเนินการไม่สำเร็จ

เรายังไม่ได้จัดเตรียมข้อมูลการใช้งานทั้งหมดที่เกี่ยวข้อง แต่สำหรับไคลเอ็นต์จำนวนมาก เช่น แอปปฏิทินของ Apple โปรโตคอล CalDAV ควรที่จะทำงานร่วมกันอย่างถูกต้อง

หมายเหตุ: เพื่อความปลอดภัยของบัญชีและป้องกันการละเมิด Google อาจตั้งค่าคุกกี้ในแอปพลิเคชันไคลเอ็นต์ที่เข้าถึงข้อมูลผ่าน CalDAV

การสร้างรหัสไคลเอ็นต์

หากต้องการใช้ CalDAV API คุณต้องมี บัญชี Google ถ้าคุณมีบัญชีที่ใช้อยู่แล้ว ไม่ต้องดำเนินการใดๆ เพิ่มเติม

คุณต้องลงทะเบียนก่อน จึงจะส่งคำขอไปยัง CalDAV API ได้ ไคลเอ็นต์ด้วยคอนโซล Google API ด้วยการสร้างโปรเจ็กต์

ไปที่คอนโซล Google API คลิกสร้างโครงการ ป้อนชื่อ แล้วคลิกสร้าง

ขั้นตอนถัดไปคือเปิดใช้งาน CalDAV API

หากต้องการเปิดใช้ API สำหรับโปรเจ็กต์ของคุณ ให้ทำดังนี้

  1. เปิดไลบรารี API ในคอนโซล Google API หากได้รับข้อความแจ้ง ให้เลือก หรือสร้างโปรเจ็กต์ใหม่ ไลบรารี API แสดงรายการทั้งหมดที่มี API ที่จัดกลุ่มตามกลุ่มผลิตภัณฑ์และความนิยม
  2. หากไม่เห็น API ที่ต้องการเปิดใช้ในรายการ ให้ใช้การค้นหาเพื่อ หาเจอ
  3. เลือก API ที่ต้องการเปิดใช้ แล้วคลิกเปิดใช้
  4. หากได้รับข้อความแจ้ง ให้เปิดใช้การเรียกเก็บเงิน
  5. หากได้รับข้อความแจ้ง ให้ยอมรับข้อกำหนดในการให้บริการของ API
หากต้องการส่งคำขอ CalDAV API คุณจะต้องมี Client-ID และรหัสลับไคลเอ็นต์

วิธีค้นหารหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ของโปรเจ็กต์

  1. เลือก OAuth 2.0 ที่มีอยู่ ข้อมูลเข้าสู่ระบบหรือเปิดหน้าข้อมูลเข้าสู่ระบบ
  2. สร้าง OAuth 2.0 ของโปรเจ็กต์หากยังไม่ได้สร้าง ข้อมูลเข้าสู่ระบบโดยคลิก สร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth และ ระบุข้อมูลที่จำเป็นในการสร้างข้อมูลเข้าสู่ระบบ
  3. มองหารหัสไคลเอ็นต์ในส่วนรหัสไคลเอ็นต์ OAuth 2.0 คลิกรหัสไคลเอ็นต์เพื่อดูรายละเอียด

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ CalDAV ของ Google

ในการใช้อินเทอร์เฟซ CalDAV โปรแกรมไคลเอ็นต์จะเชื่อมต่อกับ เซิร์ฟเวอร์ปฏิทินที่จุดเริ่มต้นจุดหนึ่งในสองจุด ไม่ว่าในกรณีใด การเชื่อมต่อ ต้องดำเนินการผ่าน HTTPS และต้องใช้ OAuth 2.0 การตรวจสอบสิทธิ์ เซิร์ฟเวอร์ CalDAV จะปฏิเสธที่จะตรวจสอบสิทธิ์คำขอ ยกเว้นในกรณีที่มาถึง HTTPS ที่มีการตรวจสอบสิทธิ์ OAuth 2.0 ของบัญชี Google การพยายามเชื่อมต่อผ่าน HTTP หรือใช้การตรวจสอบสิทธิ์พื้นฐานจะได้ผลลัพธ์เป็น HTTP รหัสสถานะ 401 Unauthorized

หากโปรแกรมไคลเอ็นต์ (เช่น แอปปฏิทินของ Apple) กำหนดให้ต้องมี URI ที่จะเชื่อมต่อคือ

https://apidata.googleusercontent.com/caldav/v2/calid/user

โดยควรแทนที่ calid ด้วยพารามิเตอร์ "รหัสปฏิทิน" ปฏิทินที่ต้องการเข้าถึง ซึ่งสามารถค้นหาได้จาก ดังนี้ ในเมนูแบบเลื่อนลงถัดจาก ชื่อปฏิทิน ให้เลือกการตั้งค่าปฏิทิน ในหน้าผลลัพธ์ รหัสปฏิทินจะแสดงในส่วนที่ชื่อปฏิทิน ที่อยู่ รหัสปฏิทินสำหรับปฏิทินหลักของผู้ใช้จะเหมือนกับ อีเมลของผู้ใช้รายดังกล่าว

หากโปรแกรมไคลเอ็นต์ (เช่น Mozilla Sunbird) จำเป็นต้องใช้สิ่งต่อไปนี้ คอลเล็กชันปฏิทินเป็นจุดเริ่มต้น โดย URI ที่จะเชื่อมต่อคือ

https://apidata.googleusercontent.com/caldav/v2/calid/events

ปลายทางเดิม https://www.google.com/calendar/dav คือ เลิกใช้งานแล้วและไม่รองรับอีกต่อไป คุณต้องรับความเสี่ยงจากการใช้งานเอง เราขอแนะนําให้เปลี่ยนไปใช้รูปแบบปลายทางใหม่ตามที่อธิบายไว้ข้างต้น

iCal® เป็นเครื่องหมายการค้าของ Apple Inc.