CalDAV API ডেভেলপার নির্দেশিকা

CalDAV হল WebDAV-এর একটি এক্সটেনশন যা ক্লায়েন্টদের রিমোট সার্ভারে ক্যালেন্ডার সংক্রান্ত তথ্য অ্যাক্সেস করার জন্য একটি স্ট্যান্ডার্ড প্রদান করে।

Google একটি CalDAV ইন্টারফেস প্রদান করে যা আপনি CalDAV প্রোটোকল ব্যবহার করে ক্যালেন্ডার দেখতে এবং ম্যানেজ করতে ব্যবহার করতে পারেন।

CalDAV API-এর কোটা সীমা Calendar API-এর মতোই। আরও তথ্যের জন্য, ব্যবহার সংক্রান্ত সীমা দেখুন।

স্পেসিফিকেশন

প্রতিটি প্রাসঙ্গিক স্পেসিফিকেশনের জন্য, Google-এর CalDAV সহায়তা নিচে উল্লেখ করা হল:

  • rfc4918: HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)

    • HTTP পদ্ধতি GET, PUT, HEAD, DELETE, POST, OPTIONS, PROPFIND ও PROPPATCH-এর সাথে কাজ করে।
    • LOCK, UNLOCK, COPY, MOVE, MKCOL HTTP পদ্ধতি বা If* হেডার (If-Match ছাড়া) কাজ করে না।
    • স্বেচ্ছাচারী (ব্যবহারকারী-সংজ্ঞায়িত) WebDAV প্রপার্টি কাজ করে না।
    • WebDAV অ্যাক্সেস কন্ট্রোল (rfc3744) কাজ করে না।
  • rfc4791: Calendaring Extensions to WebDAV (CalDAV)

    • HTTP পদ্ধতি REPORT-এর সাথে কাজ করে। free-busy-query ছাড়া সব রিপোর্ট প্রয়োগ করা হয়েছে।
    • HTTP পদ্ধতি MKCALENDAR কাজ করে না।
    • AUDIO অ্যাকশন কাজ করে না।
  • rfc5545: iCalendar

    • CalDAV ইন্টারফেসে দেখানো ডেটা iCalendar স্পেসিফিকেশন অনুযায়ী ফর্ম্যাট করা হয়।
    • VTODO বা VJOURNAL ডেটা কাজ করে না।
    • ব্যবহারকারীর সেট করা URL প্রপার্টি অনুমোদনের জন্য Apple iCal এক্সটেনশন কাজ করে না।
  • rfc6578: WebDAV-এর জন্য কালেকশন সিঙ্ক্রোনাইজেশন

    • প্রাথমিক সিঙ্ক হওয়ার পরে ক্লায়েন্ট অ্যাপ্লিকেশনকে অবশ্যই এই মোডে কাজ করতে হবে।
  • rfc6638: Scheduling Extensions to CalDAV

    • একটি তুচ্ছ "ইনবক্স" কাজ করে, যা সবসময় খালি থাকে।
    • আপনি যেসব আমন্ত্রণ পান সেগুলি আপনার "ইনবক্সে" রাখার পরিবর্তে অটোমেটিক আপনার "ইভেন্ট" সংগ্রহে ডেলিভার করা হয়।
    • free-busy লুক-আপ কাজ করে না।
  • caldav-ctag-02: Calendar Collection Entity Tag (CTag) in CalDAV

    • ক্যালেন্ডার ctag হল একটি রিসোর্সের etag মতো; ক্যালেন্ডারে কোনও পরিবর্তন হলে এটিও পরিবর্তিত হয়। এর ফলে ক্লায়েন্ট অ্যাপ্লিকেশন দ্রুত বুঝতে পারে যে পরিবর্তিত কোনও ইভেন্ট সিঙ্ক্রোনাইজ করার প্রয়োজন নেই।
  • calendar-proxy: Calendar User Proxy Functionality in CalDAV

    • ক্যালেন্ডার সিঙ্ক করার পারফর্ম্যান্স উন্নত করতে, iOS UserAgent-এর সাথে calendar-proxy-read-for বা calendar-proxy-write-for প্রপার্টি সহ অনুরোধ কাজ করবে না কারণ iOS ডিভাইস ডেলিগেশন সাপোর্ট করে না।

আমাদের CalDAV প্রয়োগে সব স্পেসিফিকেশন অন্তর্ভুক্ত না থাকলেও, এটি Apple Calendar সহ অনেক ক্লায়েন্টের জন্য সঠিকভাবে কাজ করে।

আপনার ক্লায়েন্ট আইডি তৈরি করা

CalDAV API ব্যবহার করতে হলে আপনার একটি Google অ্যাকাউন্ট থাকতে হবে।

CalDAV API-তে অনুরোধ পাঠানোর আগে, আপনাকে প্রোজেক্ট তৈরি করে Google Cloud Console-এ নিজের ক্লায়েন্ট রেজিস্টার করতে হবে।

Google এপিআই কনসোল-এ যান। প্রোজেক্ট তৈরি করুন বিকল্পে ক্লিক করুন, নাম লিখুন এবং তৈরি করুন বিকল্পে ক্লিক করুন।

এর পরে আপনাকে CalDAV API চালু করতে হবে।

আপনার প্রোজেক্টের জন্য API চালু করতে, নিম্নলিখিত কাজগুলি করুন:

  1. Google API কনসোলে API লাইব্রেরি খুলুন। প্রম্পট করা হলে, কোনও প্রোজেক্ট বেছে নিন বা নতুন একটি তৈরি করুন। API লাইব্রেরিতে উপলভ্য সব API-এর তালিকা দেওয়া আছে, এগুলিকে প্রোডাক্ট ফ্যামিলি ও জনপ্রিয়তার ভিত্তিতে গ্রুপ করা হয়েছে।
  2. আপনি যে API চালু করতে চান সেটি তালিকায় দেখতে না পেলে, সেটি খুঁজে পেতে সার্চ ব্যবহার করুন।
  3. আপনি যে API চালু করতে চান সেটি বেছে নিন, তারপরে চালু করুন বোতামে ক্লিক করুন।
  4. বলা হলে, বিলিং চালু করুন।
  5. প্রম্পট করা হলে, API-এর পরিষেবার শর্তাবলীতে সম্মতি দিন।

CalDAV API অনুরোধ করার জন্য আপনার ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট প্রয়োজন।

আপনার প্রোজেক্টের ক্লায়েন্ট আইডি ও ক্লায়েন্ট সিক্রেট খুঁজে পেতে, নিম্নলিখিত কাজগুলি করুন:

  1. আগে থেকে থাকা OAuth 2.0 ক্রেডেনশিয়াল বেছে নিন অথবা ক্রেডেনশিয়াল পৃষ্ঠা খুলুন।
  2. আপনি আগে থেকে এটি করে না থাকলে, ক্রেডেনশিয়াল তৈরি করুন > OAuth ক্লায়েন্ট আইডি বিকল্পে ক্লিক করে এবং ক্রেডেনশিয়াল তৈরি করার জন্য প্রয়োজনীয় তথ্য প্রদান করে আপনার প্রোজেক্টের OAuth 2.0 ক্রেডেনশিয়াল তৈরি করুন।
  3. OAuth 2.0 ক্লায়েন্ট আইডি বিভাগে ক্লায়েন্ট আইডি খুঁজুন। আরও বিবরণের জন্য, ক্লায়েন্ট আইডিতে ক্লিক করুন।

Google-এর CalDAV সার্ভারে কানেক্ট করা

CalDAV ইন্টারফেস ব্যবহার করতে, কোনও ক্লায়েন্ট প্রোগ্রাম প্রথমে দুটি শুরুর পয়েন্টের মধ্যে একটিতে ক্যালেন্ডার সার্ভারের সাথে কানেক্ট করে। দুটি ক্ষেত্রেই, কানেকশন HTTPS-এর মাধ্যমে করতে হবে এবং OAuth 2.0 যাচাইকরণ স্কিম ব্যবহার করতে হবে। Google অ্যাকাউন্টের OAuth 2.0 যাচাইকরণ সহ HTTPS-এর মাধ্যমে না পৌঁছালে CalDAV সার্ভার কোনও অনুরোধ যাচাই করতে অস্বীকার করে। HTTP-এর মাধ্যমে কানেক্ট করার চেষ্টা করলে বা প্রাথমিক যাচাইকরণ ব্যবহার করলে HTTP 401 Unauthorized স্ট্যাটাস কোড পাওয়া যায়।

ক্লায়েন্ট প্রোগ্রামের (যেমন, Apple-এর Calendar অ্যাপ) যদি শুরুর পয়েন্ট হিসেবে কোনও প্রিন্সিপাল সংগ্রহের প্রয়োজন হয়, তাহলে কানেক্ট করার URI হল:

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

CALENDAR_ID-এর পরিবর্তে, অ্যাক্সেস করা হবে এমন ক্যালেন্ডারের আইডি লিখুন।

ওয়েব ইন্টারফেসের মাধ্যমে ক্যালেন্ডার আইডি খুঁজতে, ক্যালেন্ডারের নামের পাশে ড্রপ-ডাউন মেনুতে ** ক্যালেন্ডার সেটিংস** বেছে নিন। ক্যালেন্ডার অ্যাড্রেস লেবেল করা বিভাগে ক্যালেন্ডার আইডি দেখানো হয়। কোনও ব্যবহারকারীর প্রাথমিক ক্যালেন্ডারের ক্যালেন্ডার আইডি হল সেই ব্যবহারকারীর ইমেল আইডির সমান।

কোনও ক্লায়েন্ট প্রোগ্রাম (যেমন Mozilla Thunderbird)-এর যদি শুরু করার জন্য ক্যালেন্ডার সংগ্রহের প্রয়োজন হয়, তাহলে নিম্নলিখিত URI ব্যবহার করুন:

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