Kişilerinizi Google'ın CardDAV protokolünü kullanarak görüntüleyebilir ve yönetebilirsiniz.
Kişiler kullanıcının Google Hesabında saklanır; çoğu Google hizmetinde kişi listesine erişebilir. İstemci uygulamanız CardDAV API'yi kullanarak yeni kişi oluşturma, mevcut kişileri düzenleme veya silme ve kişileri sorgulama reklam grubu da oluşturabilirsiniz.
Özellikler
Tam spesifikasyon uygulanmadı, ancak Apple iOSTM Kişiler ve macOS'in doğru şekilde birlikte çalışması gerekir.
İlgili her spesifikasyon için Google'ın CardDAV desteği aşağıdaki gibidir:
- rfc2518: Distributed Authoring için HTTP Uzantıları (WebDAV)
GET
,PUT
,DELETE
,OPTIONS
vePROPFIND
HTTP yöntemlerini destekler.LOCK
,UNLOCK
,COPY
,MOVE
veyaMKCOL
HTTP yöntemlerini desteklemez.- İsteğe bağlı (kullanıcı tanımlı) WebDAV özelliklerini desteklemez.
- WebDAV Erişim Denetimi'ni desteklemez (rfc3744).
- rfc5995: WebDAV Koleksiyonlarına Üye Eklemek İçin POST'u Kullanma
- Bir kimlik belirtmeden yeni kişiler oluşturmayı destekler.
- rfc6352: CardDAV: vCard Uzantıları, Web'de Dağıtılmış Yazma ve
Sürüm oluşturma (WebDAV)
REPORT
HTTP yöntemini destekler ancak tanımlanan tüm raporlar uygulanmaz.- Ana koleksiyon ve kişi koleksiyonu sağlama özelliğini destekler.
- rfc6578: WebDAV için Koleksiyon Senkronizasyonu
- ilk senkronizasyon.
- rfc6749: OAuth 2.0 Yetkilendirme Çerçevesi ve
rfc6750: OAuth 2.0 Yetkilendirme Çerçevesi: Taşıyıcı Jeton Kullanımı
- CardDAV istemci programlarının kimliğinin OAuth 2.0 HTTP kullanılarak doğrulanmasını destekler Kimlik doğrulama. Google başka hiçbir kimlik doğrulama yöntemini desteklemez. Kişi verilerinin güvenliği için CardDAV bağlantılarının HTTPS kullanması gerekir.
- rfc6764: WebDAV'deki Takvim Uzantıları (CalDAV) ve WebDAV'deki vCard Uzantıları (CardDAV) için Hizmetleri Bulun
- CardDAV URL'lerinin önyüklemesi, rfc6764'ün 6. bölümüne göre yapılmalıdır.
- Destekler
caldav-ctag-02: CalDAV'daki Takvim Koleksiyonu Varlık Etiketi (CTag),
Bu bağlantı, CardDAV ve CalDAV özellikleri arasında paylaşılır. Kişiler
ctag
, bir kaynakETag
gibidir. Kişi adres defterinde herhangi bir değişiklik olduğunda değişir. Böylece, istemci programı, senkronize edilmesi gerekmez. - Google, kişi kodlama biçimi olarak VCard 3.0'ı kullanır. Bkz.: rfc6350: VCard 3.0.
Google'ın CardDAV'ı için OAuth 2.0 gerekir
Google'ın CardDAV arayüzü için OAuth 2.0 gereklidir. Bağlantılı şu dokümanları inceleyin:
Google'ın CardDAV sunucusuna bağlanma
CardDAV protokolü, adres defteri ve kişi kaynaklarının URI'lerinin keşfedilmesine olanak tanır. Her an değişebileceği için hiçbir URI'nın kodunu gömmemeniz gerekir.
İstemci uygulamaları HTTPS kullanmalı ve OAuth 2.0
kimlik doğrulaması,
(kullanıcının Google hesabı için) CardDAV sunucusu
bir istek OAuth 2.0 ile HTTPS üzerinden ulaşmadıkça kimliğini doğrulama
bir Google Hesabı'nın kimlik doğrulamasından yararlanabiliyorsanız ve uygulamanız
DevConsole. Temel kimlik doğrulaması veya
bir Google hesabıyla eşleşmeyen bir e-posta/şifre, HTTP ile sonuçlanıyorsa
401 Unauthorized
yanıt kodu.
CardDAV'ı kullanmak için istemci programınızın ilk olarak standart sayfaya bağlanması gerekir
şurada bir HTTP PROPFIND
gerçekleştirerek keşif yolu:
https://www.googleapis.com/.well-known/carddav
Bir Adres Defteri Kaynağına (HTTP 301
) yönlendirildikten sonra istemci programınız
daha sonra,PROPFIND
DAV:current-user-principal
, DAV:principal-URL
ve addressbook-home-set
özellikler. Böylece istemci programınız ana adres defterini
addressbook-home-set
cihazında PROPFIND
gerçekleştiriyor ve
addressbook
ve collection
kaynakları. Bu sürecin tam açıklaması bu dokümanın kapsamı dışındadır. Daha fazla bilgi için rfc6352 sayfasına bakın.
Şu tarihte bir PROPFIND
aracılığıyla HTTP 301
yanıtında döndürülen yönlendirme yolu:
iyi bilinen URI kalıcı olarak önbelleğe alınmamalıdır (
rfc6764). Cihazlar, önbelleğe alınan yolun hâlâ güncel olup olmadığını doğrulamak ve yol değişirse yeniden senkronize etmek için bilinen URI keşfini düzenli aralıklarla yeniden denemelidir. Google, 2-4 haftada bir gönderim yapmanızı önerir.
Kaynaklar
CardDAV, REST kavramlarını kullanır. İstemci uygulamaları, URI'leri ile tanımlanan kaynaklar üzerinde işlem yapar. Yardımcı olması için geçerli URI yapısı burada belirtilmiştir geliştiriciler aşağıdaki bölümde yer alan kavramları anlamıştır. Yapı değişebilir ve sabit kodla yazılmamalıdır. Bunun yerine, kaynaklar RFC'ye göre bulunmalıdır.
- Müdür
- https://www.googleapis.com/carddav/v1/principals/
userEmail
- https://www.googleapis.com/carddav/v1/principals/
- Ev Ayarlama
- https://www.googleapis.com/carddav/v1/principals/
userEmail
/lists
- https://www.googleapis.com/carddav/v1/principals/
- Adres Defteri
- https://www.googleapis.com/carddav/v1/principals/
userEmail
/lists/default
- https://www.googleapis.com/carddav/v1/principals/
- İletişim
- https://www.googleapis.com/carddav/v1/principals/
userEmail
/lists/default/contactId
- https://www.googleapis.com/carddav/v1/principals/
Kişileri senkronize etme
Aşağıda, desteklenen işlemlerin genel bir açıklaması yer almaktadır. Geliştiriciler, ilgili RFC'de ayrıntıları bulabilir. İstekler ve yanıtlar XML'de kodlanır. Bunlar, istemci tarafından kullanılan ana işlemlerdir. senkronizasyon uygulamaları:
- CTag'i kullanma
- İstemci programları, Adres Defteri'nde
getctag
PROPFIND
isteğini kullanır ve herhangi bir kişinin sunucuda değişip değişmediğini belirlemek için bir bu nedenle senkronizasyon gerekip gerekmediği. Herhangi bir kişi değişirse bu mülkün değerinin değişeceği garanti edilir. İstemci uygulamaları bu değeri depolamalı ve yalnızca ilk senkronizasyonda ve birsync-token
geçersiz olduğunda yedek olarak kullanmalıdır.getctag
mülkü için düzenli olarak yoklama yapılması, mülkün sınırlandırılmasına neden olur.
- İstemci programları, Adres Defteri'nde
- sync-token parametresini kullanma
- İstemci programları, mevcut durumunu temsil eden
sync-token
öğesini almak için Adres Defteri'ndekisync-token
PROPFIND
isteğini kullanır. Müşteri uygulamalar bu değeri depolamalı ve düzenli olaraksync-collection
vermelidir. Son gönderilen tarihten bu yana yapılan değişiklikleri belirlemek içinREPORT
istek gönderildisync-token
. Verilen jetonlar 29 gün boyunca geçerlidir veREPORT
yanıt yeni birsync-token
içerecek.
- İstemci programları, mevcut durumunu temsil eden
- E-etiketleri kullanma
- İstemci uygulamaları, Adres Defteri kaynağında (
DEPTH
başlığıDEPTH_1
'a eşit olacak şekilde) birgetetag
PROPFIND
isteği gönderir. İstemci programı, her kişininETag
değerini koruyarakETag
değeri değiştirilen kişilerin değerini isteyebilir.
- İstemci uygulamaları, Adres Defteri kaynağında (
- Kişileri getirme
- İstemci uygulamaları, kişileri bir
addressbook-multiget
REPORT
isteği. Rapor, iletişim URI'lerinin bir listesini aldığında istenen tüm kişileri VCard 3.0 değerleri olarak döndürür. Her girişte kişi için birETag
bulunur.
- İstemci uygulamaları, kişileri bir
- Kişi ekleme
- İstemci uygulamaları, VCard'daki yeni kişiye bir
POST
isteği gönderir. 3.0 biçiminde indirilmelidir. Yanıtta yeni kişinin kimliği yer alır.
- İstemci uygulamaları, VCard'daki yeni kişiye bir
- Kişileri güncelleme
- İstemci uygulamaları, güncellenmiş kişiyi VCard 3.0 biçiminde içeren bir
PUT
isteği gönderir. Kişi zaten mevcutsa güncellenir yazın. - İstemci uygulamaları,
If-Match
kişinin şu anda bilinenETag
. Sunucudaki mevcutETag
, istemci programı tarafından gönderilenETag
'den farklıysa sunucuPUT
isteğini (HTTP 412
ile) reddeder. Bu, güncellemelerin iyimser bir şekilde serileştirilmesine olanak tanır.
- İstemci uygulamaları, güncellenmiş kişiyi VCard 3.0 biçiminde içeren bir
- Kişiyi silme
- Müşteri uygulamaları, kişi URI'sine karşı bir
DELETE
isteği göndererek kişiyi siler.
- Müşteri uygulamaları, kişi URI'sine karşı bir