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 के डेटा के साथ काम नहीं करता.
    • उपयोगकर्ता के लिए तय की जा सकने वाली यूआरएल प्रॉपर्टी को अनुमति देने के लिए, Apple iCal® एक्सटेंशन के साथ काम नहीं करता.
  • RFC6578: WebDAV के लिए कलेक्शन सिंक्रोनाइज़ेशन
    • शुरुआती सिंक के बाद, क्लाइंट ऐप्लिकेशन को कार्रवाई के इस मोड पर स्विच करना ज़रूरी है.
  • rfc6638: CalDAV के लिए एक्सटेंशन शेड्यूल करना
    • मामूली "इनबॉक्स" का इस्तेमाल करता है, जो हमेशा खाली होता है.
    • आपको मिलने वाले न्योते, "इनबॉक्स" में डाले जाने के बजाय आपके "इवेंट" संग्रह में अपने-आप पहुंच जाते हैं.
    • खाली-व्यस्त लुकअप का समर्थन नहीं करता.
  • caldav-ctag-02: CalDAV में कैलेंडर कलेक्शन एंटिटी टैग (CTag)
    • कैलेंडर ctag एक संसाधन etag की तरह है; कैलेंडर में कुछ भी बदलने पर यह बदल जाता है. इससे क्लाइंट ऐप्लिकेशन को तुरंत यह तय करने में मदद मिलती है कि उसे किसी भी बदलाव को सिंक करने की ज़रूरत नहीं है.
  • calendar-प्रॉक्सी: CalDAV में कैलेंडर उपयोगकर्ता प्रॉक्सी फ़ंक्शन
    • जिन iOS डिवाइसों में डेलिगेशन की सुविधा काम नहीं करती, उनसे कैलेंडर सिंक की परफ़ॉर्मेंस को बेहतर बनाने के लिए, iOS UserAgent के साथ calendar-proxy-read-for या calendar-proxy-write-for प्रॉपर्टी का इस्तेमाल नहीं किया जा सकेगा.

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

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

आपका क्लाइंट आईडी बनाया जा रहा है

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

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

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

अगला कदम CalDAV API चालू करना है.

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

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

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

  1. कोई मौजूदा OAuth 2.0 क्रेडेंशियल चुनें या क्रेडेंशियल पेज खोलें.
  2. अगर आपने अब तक ऐसा नहीं किया है, तो अपने प्रोजेक्ट के OAuth 2.0 क्रेडेंशियल बनाएं. इसके लिए, क्रेडेंशियल बनाएं > OAuth क्लाइंट आईडी पर क्लिक करें और क्रेडेंशियल बनाने के लिए ज़रूरी जानकारी दें.
  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 वेब इंटरफ़ेस में इस तरह देखा जा सकता है: कैलेंडर के नाम के बगल में मौजूद पुल-डाउन मेन्यू में, कैलेंडर सेटिंग चुनें. नतीजे वाले पेज पर कैलेंडर आईडी, कैलेंडर का पता लेबल वाले सेक्शन में दिखता है. उपयोगकर्ता के मुख्य कैलेंडर का कैलेंडर आईडी और उपयोगकर्ता का ईमेल पता एक ही होता है.

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

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

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

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