CalDAV API डेवलपर' गाइड

CalDAV, WebDAV का एक एक्सटेंशन है. यह क्लाइंट को रिमोट सर्वर पर कैलेंडर की जानकारी ऐक्सेस करने का एक स्टैंडर्ड उपलब्ध कराता है.

Google एक CalDAV इंटरफ़ेस उपलब्ध कराता है, जिसका उपयोग आप CalDAV प्रोटोकॉल का उपयोग करके कैलेंडर देखने और प्रबंधित करने के लिए कर सकते हैं.

जानकारी

हर ज़रूरी जानकारी के लिए, Google का CalDAV सपोर्ट यहां दिया गया है:

  • rfc4918: वेब पर डिस्ट्रिब्यूट किए गए ऑथरिंग और वर्शनिंग के लिए एचटीटीपी एक्सटेंशन (WebDAV)
    • एचटीटीपी तरीकों GET, PUT, HEAD, DELETE, POST,OPTIONS, PROPFIND, और PROPPATCH के साथ काम करता है.
    • एचटीटीपी तरीके LOCK, UNLOCK, COPY, MOVE या MKCOL या If* हेडर (If-Match को छोड़कर) के साथ काम नहीं करता है.
    • आर्बिट्रेरी (उपयोगकर्ता के तय किए गए) WebDAV प्रॉपर्टी के साथ काम नहीं करता है.
    • WebDAV ऐक्सेस कंट्रोल (RFC3744) के साथ काम नहीं करता है.
  • rfc4791: WebDAV (CalDAV) पर कैलेंडरिंग एक्सटेंशन
    • एचटीटीपी तरीके REPORT के साथ काम करता है. खाली-व्यस्त-क्वेरी को छोड़कर सभी रिपोर्ट लागू की जाती हैं.
    • एचटीटीपी तरीके MKCALENDAR पर काम नहीं करता है.
    • AUDIO कार्रवाई की सुविधा उपलब्ध नहीं है.
  • rfc5545: iCalendar
    • CalDAV इंटरफ़ेस में दिखाए गए डेटा को iCalendar स्पेसिफ़िकेशन के मुताबिक फ़ॉर्मैट किया गया है.
    • फ़िलहाल, VTODO या VJOURNAL डेटा के साथ काम नहीं करता.
    • उपयोगकर्ता द्वारा सेट किए जा सकने वाले URL गुणों को अनुमति देने के लिए Apple iCal® एक्सटेंशन का समर्थन नहीं करता है.
  • RFC6578: WebDAV के लिए कलेक्शन सिंक्रोनाइज़ेशन
    • शुरुआती सिंक के बाद, क्लाइंट ऐप्लिकेशन को कार्रवाई के इस मोड पर स्विच कर लेना चाहिए.
  • RFC6638: CalDAV पर एक्सटेंशन को शेड्यूल करने के बारे में जानकारी
    • छोटे-छोटे "इनबॉक्स" के साथ काम करता है, जो हमेशा खाली रहता है.
    • आपको मिलने वाले न्योते, "इनबॉक्स" में डालने के बजाय, आपके "इवेंट" कलेक्शन में अपने-आप डिलीवर हो जाते हैं.
    • खाली-व्यस्त लुकअप का इस्तेमाल नहीं किया जा सकता.
  • caldav-ctag-02: CalDAV में कैलेंडर कलेक्शन इकाई टैग (CTag)
    • कैलेंडर ctag एक संसाधन etag की तरह है; कैलेंडर में कुछ भी बदलने पर यह बदल जाता है. इससे क्लाइंट ऐप्लिकेशन को तुरंत यह तय करने में मदद मिलती है कि उसे किसी भी बदले गए इवेंट को सिंक करने की ज़रूरत नहीं है.
  • calendar-प्रॉक्सी: CalDAV में Calendar पर उपयोगकर्ता प्रॉक्सी की सुविधा
    • जिन iOS डिवाइसों में डेलिगेशन की सुविधा काम नहीं करती है उनसे कैलेंडर सिंक करने की परफ़ॉर्मेंस को बेहतर बनाने के लिए, iOS UserAgent के साथ calendar-proxy-read-for या calendar-proxy-write-for प्रॉपर्टी का इस्तेमाल नहीं किया जा सकेगा.

हमने अभी तक सभी ज़रूरी जानकारी को पूरी तरह से लागू नहीं किया है. हालांकि, Apple के Calendar ऐप्लिकेशन जैसे कई क्लाइंट के लिए CalDAV प्रोटोकॉल को सही तरीके से इंटरऑपरेट करना चाहिए.

ध्यान दें: खाते की सुरक्षा के लिए और गलत इस्तेमाल को रोकने के लिए, Google उन क्लाइंट ऐप्लिकेशन पर कुकी सेट कर सकता है जो CalDAV के ज़रिए डेटा ऐक्सेस करते हैं.

अपना क्लाइंट आईडी बनाना

CalDAV API का इस्तेमाल करने के लिए, आपके पास एक Google खाता होना चाहिए. अगर आपके पास पहले से कोई ऐसा खाता है जिसे इस्तेमाल किया जा सकता है, तो आपको कुछ करने की ज़रूरत है.

CalDAV API को अनुरोध भेजने से पहले, आपको एक प्रोजेक्ट बनाकर अपने क्लाइंट को Google API Console में रजिस्टर करना होगा.

Google के एपीआई कंसोल पर जाएं. प्रोजेक्ट बनाएं पर क्लिक करें, कोई नाम डालें, और बनाएं पर क्लिक करें.

इसके बाद, CalDAV API को चालू करें.

अपने प्रोजेक्ट के लिए एपीआई चालू करने के लिए, ये काम करें:

  1. Google API कंसोल में एपीआई लाइब्रेरी खोलें. अगर कहा जाए, तो कोई प्रोजेक्ट चुनें या नया प्रोजेक्ट बनाएं. एपीआई लाइब्रेरी में, सभी उपलब्ध एपीआई की सूची होती है. इन्हें प्रॉडक्ट फ़ैमिली और लोकप्रियता के हिसाब से ग्रुप में बांटा जाता है.
  2. आपको जिस एपीआई को चालू करना है अगर वह सूची में नहीं दिख रहा है, तो उसे ढूंढने के लिए खोजें का इस्तेमाल करें.
  3. वह एपीआई चुनें जिसे आपको चालू करना है. इसके बाद, चालू करें बटन पर क्लिक करें.
  4. पूछे जाने पर, बिलिंग की सुविधा चालू करें.
  5. अनुरोध किए जाने पर, एपीआई की सेवा की शर्तें स्वीकार करें.
CalDAV API अनुरोध करने के लिए, आपको क्लाइंट आईडी और क्लाइंट सीक्रेट की ज़रूरत होगी.

अपने प्रोजेक्ट का क्लाइंट आईडी और क्लाइंट सीक्रेट ढूंढने के लिए, यह तरीका अपनाएं:

  1. कोई मौजूदा OAuth 2.0 क्रेडेंशियल चुनें या क्रेडेंशियल पेज खोलें.
  2. अगर आपने पहले से ऐसा नहीं किया है, तो क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी पर क्लिक करके और क्रेडेंशियल बनाने के लिए ज़रूरी जानकारी देकर, अपने प्रोजेक्ट का OAuth 2.0 क्रेडेंशियल बनाएं.
  3. OAuth 2.0 क्लाइंट आईडी सेक्शन में Client-ID देखें. ज़्यादा जानकारी के लिए, Client-ID पर क्लिक करें.

Google के CalDAV सर्वर से कनेक्ट करना

CalDAV इंटरफ़ेस का इस्तेमाल करने के लिए, क्लाइंट प्रोग्राम शुरुआत में कैलेंडर सर्वर के साथ दो में से एक शुरुआती पॉइंट पर कनेक्ट होता है. दोनों ही मामलों में, कनेक्शन को एचटीटीपीएस पर बनाया जाना चाहिए और OAuth 2.0 की पुष्टि करने वाली स्कीम का इस्तेमाल करना चाहिए. CalDAV सर्वर किसी अनुरोध की तब तक पुष्टि नहीं करेगा, जब तक कि वह Google खाते के OAuth 2.0 पुष्टि के साथ एचटीटीपीएस पर नहीं आता. एचटीटीपी से कनेक्ट करने या पुष्टि करने के सामान्य तरीके का इस्तेमाल करने पर, एचटीटीपी 401 Unauthorized स्टेटस कोड दिखता है.

अगर क्लाइंट प्रोग्राम (जैसे कि Apple के Calendar ऐप्लिकेशन) को शुरुआती पॉइंट के तौर पर एक प्रिंसिपल कलेक्शन की ज़रूरत है, तो कनेक्ट करने के लिए यूआरआई:

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

जहां calid को ऐक्सेस करने के लिए कैलेंडर के "कैलेंडर आईडी" से बदलना होगा. इसे Google Calendar वेब इंटरफ़ेस पर इस तरह से देखा जा सकता है: कैलेंडर के नाम के बगल में मौजूद पुल-डाउन मेन्यू में, Calendar की सेटिंग चुनें. नतीजे देने वाले पेज पर, कैलेंडर आईडी Calendar का पता लेबल वाले सेक्शन में दिखता है. किसी उपयोगकर्ता के मुख्य कैलेंडर का आईडी और उस उपयोगकर्ता के ईमेल पते एक ही होते हैं.

अगर किसी क्लाइंट प्रोग्राम (जैसे कि Mozilla Sunbird) को कैलेंडर के कलेक्शन की ज़रूरत शुरुआत में होती है, तो कनेक्ट करने के लिए यूआरआई:

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

पुराना एंडपॉइंट https://www.google.com/calendar/dav अब काम नहीं करता. इसलिए, इसका इस्तेमाल अपने जोखिम पर करें. हमारा सुझाव है कि आप एंडपॉइंट के नए फ़ॉर्मैट का इस्तेमाल करें, जैसा कि ऊपर बताया गया है.

iCal®, Apple Inc का ट्रेडमार्क है.