CalDAV to rozszerzenie WebDAV, które zapewnia klientom dostęp do informacji o kalendarzu na serwerze zdalnym.
Google udostępnia interfejs CalDAV, którego możesz używać do wyświetlania kalendarzy i zarządzania nimi za pomocą protokołu CalDAV.
Interfejs CalDAV API ma takie same limity jak interfejs Calendar API. Więcej informacji znajdziesz w artykule Limity użycia.
Specyfikacja
W przypadku każdej z odpowiednich specyfikacji obsługa CalDAV przez Google jest następująca:
rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
- Obsługuje metody HTTP
GET,PUT,HEAD,DELETE,POST,OPTIONS,PROPFINDiPROPPATCH. - Nie obsługuje metod HTTP
LOCK,UNLOCK,COPY,MOVE,MKCOL, ani nagłówkaIf*(z wyjątkiemIf-Match). - Nie obsługuje dowolnych (zdefiniowanych przez użytkownika) właściwości WebDAV.
- Nie obsługuje kontroli dostępu WebDAV (rfc3744).
- Obsługuje metody HTTP
rfc4791: Calendaring Extensions to WebDAV (CalDAV)
- Obsługuje metodę HTTP
REPORT. Wszystkie raporty opróczfree-busy-querysą zaimplementowane. - Nie obsługuje metody HTTP
MKCALENDAR. - Nie obsługuje działania
AUDIO.
- Obsługuje metodę HTTP
-
- Dane udostępniane w interfejsie CalDAV są formatowane zgodnie ze specyfikacją iCalendar.
- Nie obsługuje danych
VTODOaniVJOURNAL. - Nie obsługuje rozszerzenia Apple iCal, które umożliwia ustawianie przez użytkownika właściwości URL.
rfc6578: Collection Synchronization for WebDAV
- Po wstępnej synchronizacji aplikacje klienckie muszą przejść na ten tryb działania.
rfc6638: Scheduling Extensions to CalDAV
- Obsługuje trywialną „skrzynkę odbiorczą”, która jest zawsze pusta.
- Otrzymywane zaproszenia są automatycznie dostarczane do kolekcji „wydarzenia”, a nie do „skrzynki odbiorczej”.
- Nie obsługuje wyszukiwania
free-busy.
caldav-ctag-02: Calendar Collection Entity Tag (CTag) in CalDAV
ctagkalendarza jest podobny doetagzasobu – zmienia się, gdy zmieni się cokolwiek w kalendarzu. Dzięki temu aplikacja kliencka może szybko stwierdzić, że nie musi synchronizować żadnych zmienionych wydarzeń.
calendar-proxy: Calendar User Proxy Functionality in CalDAV
- Aby poprawić wydajność synchronizacji kalendarza, żądania zawierające właściwości
calendar-proxy-read-forlubcalendar-proxy-write-forbędą kończyć się niepowodzeniem w przypadku UserAgenta iOS, ponieważ urządzenia z iOS nie obsługują delegowania.
- Aby poprawić wydajność synchronizacji kalendarza, żądania zawierające właściwości
Chociaż nasza implementacja CalDAV nie obejmuje wszystkich specyfikacji, działa prawidłowo w przypadku wielu klientów, w tym Kalendarza Apple.
Tworzenie identyfikatora klienta
Aby korzystać z interfejsu CalDAV API, musisz mieć konto Google.
Zanim zaczniesz wysyłać żądania do interfejsu CalDAV API, musisz zarejestrować swojego klienta w konsoli Google Cloud, tworząc projekt.
Otwórz konsolę interfejsów API Google. Kliknij Utwórz projekt, wpisz nazwę i kliknij Utwórz.
Następnie musisz aktywować interfejs CalDAV API.
Aby włączyć interfejs API w projekcie:
- Otwórz bibliotekę interfejsów API w konsoli interfejsów API Google. Jeśli pojawi się taka prośba, wybierz projekt lub utwórz nowy. Biblioteka API zawiera listę wszystkich dostępnych interfejsów API pogrupowanych według rodziny produktów i popularności.
- Jeśli interfejs API, który chcesz włączyć, nie jest widoczny na liście, użyj wyszukiwarki.
- Wybierz interfejs API, który chcesz włączyć, a następnie kliknij przycisk Włącz.
- Jeśli pojawi się taka prośba, włącz płatności.
- Jeśli pojawi się taka prośba, zaakceptuj Warunki korzystania z interfejsu API.
Aby wysyłać żądania do interfejsu CalDAV API , potrzebujesz identyfikatora klienta i tajnego klucza klienta.
Aby znaleźć identyfikator klienta i tajny klucz klienta projektu:
- Wybierz istniejące dane logowania OAuth 2.0 lub otwórz stronę Dane logowania.
- Jeśli jeszcze tego nie zrobiono, utwórz dane logowania OAuth 2.0 projektu, klikając Utwórz dane logowania > Identyfikator klienta OAuth i podając informacje potrzebne do utworzenia danych logowania.
- W sekcji Identyfikatory klienta OAuth 2.0 znajdź identyfikator klienta. Aby uzyskać szczegółowe informacje, kliknij identyfikator klienta.
Łączenie z serwerem CalDAV Google
Aby korzystać z interfejsu CalDAV, program kliencki początkowo łączy się z serwerem kalendarza w jednym z 2 punktów początkowych. W obu przypadkach połączenie
musi być nawiązywane przez HTTPS i musi używać schematu uwierzytelniania OAuth
2.0. Serwer CalDAV odmawia uwierzytelnienia żądania, chyba że dotrze ono przez HTTPS z uwierzytelnianiem OAuth 2.0 konta Google. Próba połączenia przez HTTP lub przy użyciu uwierzytelniania podstawowego powoduje zwrócenie kodu stanu HTTP 401 Unauthorized.
Jeśli program kliencki (np. aplikacja Kalendarz Apple) wymaga kolekcji głównej jako punktu początkowego, identyfikator URI, z którym należy się połączyć, to:
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/user
Zastąp CALENDAR_ID identyfikatorem kalendarza, do którego chcesz uzyskać dostęp.
Aby znaleźć identyfikator kalendarza w interfejsie internetowym, w menu obok nazwy kalendarza wybierz **Ustawienia kalendarza**. Identyfikator kalendarza jest widoczny w sekcji Adres kalendarza. Identyfikator kalendarza głównego użytkownika jest taki sam jak jego adres e-mail.
Jeśli program kliencki (np. Mozilla Thunderbird) wymaga kolekcji kalendarza jako punktu początkowego, użyj tego identyfikatora URI:
https://apidata.googleusercontent.com/caldav/v2/CALENDAR_ID/events