Hướng dẫn dành cho nhà phát triển API CalDAV

CalDAV là một phần mở rộng của WebDAV cung cấp tiêu chuẩn để ứng dụng truy cập trên máy chủ từ xa.

Google cung cấp giao diện CalDAV mà bạn có thể sử dụng để xem và quản lý lịch bằng giao thức CalDAV.

Thông số kỹ thuật

Đối với mỗi thông số kỹ thuật có liên quan, khả năng hỗ trợ CalDAV của Google như sau:

  • rfc4918: Tiện ích HTTP cho hoạt động soạn thảo và tạo phiên bản được phân phối trên web (WebDAV)
    • Hỗ trợ các phương thức HTTP GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFINDPROPPATCH.
    • Không hỗ trợ các phương thức HTTP LOCK, UNLOCK, COPY, MOVE hoặc MKCOL hoặc tiêu đề If* (ngoại trừ If-Match).
    • Không hỗ trợ các thuộc tính WebDAV tuỳ ý (do người dùng xác định).
    • Không hỗ trợ tính năng Kiểm soát quyền truy cập WebDAV (rfc3744).
  • rfc4791: Tiện ích điều chỉnh lịch cho WebDAV (CalDAV)
    • Hỗ trợ phương thức HTTP REPORT. Tất cả báo cáo, ngoại trừ truy vấn rảnh-bận đều được triển khai.
    • Không hỗ trợ phương thức HTTP MKCALENDAR.
    • Không hỗ trợ hành động AUDIO.
  • rfc5545: iLịch
    • Dữ liệu hiển thị trong giao diện CalDAV được định dạng theo Thông số kỹ thuật của iLịch.
    • Hiện không hỗ trợ dữ liệu VTODO hoặc VJOURNAL.
    • Không hỗ trợ tiện ích Apple iCal® để cho phép các thuộc tính URL có thể đặt cho người dùng.
  • rfc6578: Đồng bộ hoá bộ sưu tập cho WebDAV
    • Ứng dụng khách phải chuyển sang chế độ hoạt động này sau đồng bộ hoá ban đầu.
  • rfc6638: Lập lịch tiện ích cho CalDAV
    • Hỗ trợ một "hộp thư đến" bình thường giá trị này sẽ luôn trống.
    • Lời mời bạn nhận được sẽ tự động được chuyển vào "sự kiện" của bạn thay vì được đưa vào "hộp thư đến" của bạn.
    • Không hỗ trợ tra cứu rảnh-bận.
  • caldav-ctag-02: Thẻ thực thể bộ sưu tập lịch (CTag) trong CalDAV
    • Lịch ctag giống như một tài nguyên etag; dữ liệu sẽ thay đổi khi bất cứ điều gì trong lịch đã thay đổi. Điều này cho phép ứng dụng khách nhanh chóng xác định rằng không cần đồng bộ hoá bất kỳ thay đổi nào sự kiện.
  • calendar-proxy: Chức năng proxy người dùng lịch trong CalDAV
    • Để cải thiện hiệu suất của việc đồng bộ hoá lịch từ các thiết bị iOS, không hỗ trợ tính năng uỷ quyền, hãy sử dụng calendar-proxy-read-for hoặc Các thuộc tính calendar-proxy-write-for có tác nhân người dùng iOS sẽ không thành công.

Chúng tôi vẫn chưa cung cấp triển khai đầy đủ tất cả các thông số kỹ thuật. Tuy nhiên, đối với nhiều ứng dụng khách như ứng dụng Lịch của Apple, giao thức CalDAV phải tương tác chính xác.

Lưu ý: Để bảo mật tài khoản và ngăn chặn hành vi sai trái, Google có thể đặt cookie trên các ứng dụng truy cập dữ liệu qua CalDAV.

Tạo mã ứng dụng khách

Để sử dụng API CalDAV, bạn cần có Tài khoản Google. Nếu đã có tài khoản mà bạn có thể sử dụng thì bạn đã hoàn tất.

Trước khi có thể gửi yêu cầu đến API CalDAV, bạn phải đăng ký ứng dụng của bạn thông qua Google API Console bằng cách tạo một dự án.

Chuyển đến Google API Console. Nhấp vào Tạo dự án. nhập tên rồi nhấp vào Tạo.

Bước tiếp theo là kích hoạt API CalDAV.

Để bật API cho dự án, hãy làm như sau:

  1. Mở Thư viện API trong Google API Console. Nếu được nhắc, hãy chọn một dự án hoặc tạo một dự án mới. Thư viện API liệt kê tất cả thư viện có sẵn API, được nhóm theo nhóm sản phẩm và mức độ phổ biến.
  2. Nếu API bạn muốn chọn không hiển thị trong danh sách, hãy sử dụng chức năng tìm kiếm để tìm API đó.
  3. Chọn API bạn muốn bật, sau đó nhấp vào nút Bật .
  4. Nếu bạn nhận được một lời nhắc, hãy bật tính năng thanh toán.
  5. Nếu được nhắc, hãy chấp nhận Điều khoản dịch vụ của API.
Để thực hiện các yêu cầu CalDAV API, bạn cần Mã ứng dụng kháchMật khẩu ứng dụng khách.

Để tìm mã ứng dụng khách và mật khẩu ứng dụng khách của dự án, hãy làm như sau:

  1. Chọn OAuth 2.0 hiện có hoặc mở trang Thông tin đăng nhập.
  2. Nếu bạn chưa thực hiện việc này, hãy tạo OAuth 2.0 cho dự án của mình thông tin đăng nhập bằng cách nhấp vào Tạo thông tin xác thực > Mã ứng dụng OAuth và cung cấp thông tin cần thiết để tạo thông tin đăng nhập.
  3. Tìm Mã ứng dụng khách trong phần Mã ứng dụng khách OAuth 2.0. Để biết thông tin chi tiết, hãy nhấp vào mã ứng dụng khách.

Đang kết nối với máy chủ CalDAV của Google

Để sử dụng giao diện CalDAV, ban đầu chương trình máy khách sẽ kết nối với máy chủ lịch tại một trong hai điểm xuất phát. Trong cả hai trường hợp, kết nối phải được thực hiện qua HTTPS và phải sử dụng OAuth 2.0 lược đồ xác thực. Máy chủ CalDAV sẽ từ chối xác thực yêu cầu trừ phi trang web chuyển đến qua HTTPS kèm theo phương thức xác thực OAuth 2.0 của Tài khoản Google. Việc cố gắng kết nối qua HTTP hoặc sử dụng Xác thực cơ bản sẽ dẫn đến HTTP Mã trạng thái 401 Unauthorized.

Nếu chương trình khách (chẳng hạn như ứng dụng Lịch của Apple) yêu cầu tập hợp chính làm điểm bắt đầu, URI để kết nối là:

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

Trong đó calid phải được thay thế bằng "ID lịch" của lịch mà bạn muốn truy cập. Bạn có thể tìm thấy thông tin này thông qua Giao diện web của Lịch Google như sau: trong trình đơn kéo xuống bên cạnh tên lịch, chọn Cài đặt lịch. Trên trang kết quả ID lịch sẽ hiển thị trong phần có nhãn Lịch Địa chỉ. Mã lịch cho lịch chính của người dùng giống với địa chỉ email của người dùng đó.

Nếu một chương trình khách hàng (chẳng hạn như Mozilla Sunbird) yêu cầu làm điểm bắt đầu, URI để kết nối là:

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

Điểm cuối cũ https://www.google.com/calendar/dav là không dùng nữa và không còn được hỗ trợ nữa; và tự chịu rủi ro khi sử dụng. Bạn nên chuyển sang định dạng điểm cuối mới như mô tả ở trên.

iCal® là một nhãn hiệu của Apple Inc.