CardDAV প্রোটোকলের সাথে পরিচিতিগুলি পরিচালনা করুন

আপনি Google এর CardDAV প্রোটোকল ব্যবহার করে আপনার পরিচিতিগুলি দেখতে এবং পরিচালনা করতে পারেন৷

পরিচিতিগুলি ব্যবহারকারীর Google অ্যাকাউন্টে সংরক্ষণ করা হয়; বেশিরভাগ Google পরিষেবার যোগাযোগ তালিকায় অ্যাক্সেস আছে। আপনার ক্লায়েন্ট অ্যাপ্লিকেশন নতুন পরিচিতি তৈরি করতে, বিদ্যমান পরিচিতিগুলি সম্পাদনা করতে বা মুছতে এবং নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন পরিচিতিগুলির জন্য অনুসন্ধান করতে CardDAV API ব্যবহার করতে পারে৷

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

সম্পূর্ণ স্পেসিফিকেশন বাস্তবায়িত হয়নি, তবে অনেক ক্লায়েন্ট যেমন Apple iOS™ পরিচিতি এবং macOS সঠিকভাবে ইন্টারঅপারেটিং করা উচিত।

প্রতিটি প্রাসঙ্গিক স্পেসিফিকেশনের জন্য, Google এর CardDAV সমর্থন নিম্নরূপ:

Google-এর CardDAV-এর জন্য OAuth 2.0 প্রয়োজন৷

Google এর CardDAV ইন্টারফেসের জন্য OAuth 2.0 প্রয়োজন৷ Google API অ্যাক্সেস করতে OAuth 2.0 ব্যবহার করার তথ্যের জন্য নীচের লিঙ্ক করা ডকুমেন্টেশন পড়ুন:

Google এর CardDAV সার্ভারের সাথে সংযোগ করা হচ্ছে

কার্ডডিএভি প্রোটোকল ঠিকানা বই এবং যোগাযোগ সংস্থান ইউআরআই আবিষ্কার করতে দেয়। আপনি অবশ্যই কোনো URI হার্ডকোড করবেন না কারণ সেগুলি যেকোনো সময় পরিবর্তন হতে পারে।

ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে অবশ্যই HTTPS ব্যবহার করতে হবে এবং ব্যবহারকারীর Google অ্যাকাউন্টের জন্য OAuth 2.0 প্রমাণীকরণ প্রদান করতে হবে৷ একটি Google অ্যাকাউন্টের OAuth 2.0 প্রমাণীকরণ সহ HTTPS-এ না আসা পর্যন্ত CardDAV সার্ভার কোনও অনুরোধকে প্রমাণীকরণ করবে না এবং আপনার আবেদনটি DevConsole-এ নিবন্ধিত হয়। বেসিক প্রমাণীকরণের সাথে বা একটি Google অ্যাকাউন্টের সাথে মেলে না এমন একটি ইমেল/পাসওয়ার্ডের সাথে HTTP এর সাথে সংযোগ করার যে কোনো প্রচেষ্টা একটি HTTP 401 Unauthorized প্রতিক্রিয়া কোডে পরিণত হয়।

CardDAV ব্যবহার করার জন্য, আপনার ক্লায়েন্ট প্রোগ্রামকে প্রাথমিকভাবে একটি HTTP PROPFIND সম্পাদন করার মাধ্যমে ক্যানোনিকাল আবিষ্কারের পথের সাথে সংযোগ করতে হবে:

https://www.googleapis.com/.well-known/carddav

একবার একটি ঠিকানা বই রিসোর্সে ( HTTP 301 ) পুনঃনির্দেশিত হলে, আপনার ক্লায়েন্ট প্রোগ্রাম তারপর DAV:current-user-principal , DAV:principal-URL , এবং addressbook-home-set বৈশিষ্ট্যগুলি আবিষ্কার করতে এটিতে একটি PROPFIND সম্পাদন করতে পারে। আপনার ক্লায়েন্ট প্রোগ্রাম তখন addressbook-home-set একটি PROPFIND সম্পাদন করে এবং addressbook এবং collection সংস্থানগুলি সন্ধান করে প্রধান ঠিকানা বইটি আবিষ্কার করতে পারে। এই প্রক্রিয়ার একটি সম্পূর্ণ বিবরণ এই নথির সুযোগের বাইরে। আরো বিস্তারিত জানার জন্য rfc6352 দেখুন।

সুপরিচিত URI-তে একটি PROPFIND এর মাধ্যমে HTTP 301 প্রতিক্রিয়াতে ফিরে আসা পুনঃনির্দেশিত পথটি অবশ্যই স্থায়ীভাবে ক্যাশে করা যাবে না ( rfc6764 অনুযায়ী)। ক্যাশ করা পাথ এখনও আপ টু ডেট আছে কিনা তা যাচাই করতে ডিভাইসগুলিকে পর্যায়ক্রমে সুপরিচিত URI আবিষ্কারের পুনরায় চেষ্টা করা উচিত এবং যদি পাথ কখনও পরিবর্তন হয় তবে পুনরায় সিঙ্ক করা উচিত। Google প্রতি 2-4 সপ্তাহে একটি হার সুপারিশ করে।

সম্পদ

CardDAV REST ধারণা ব্যবহার করে। ক্লায়েন্ট অ্যাপ্লিকেশনগুলি তাদের ইউআরআই দ্বারা মনোনীত সংস্থানগুলির উপর কাজ করে। বর্তমান URI কাঠামোটি এখানে উল্লেখ করা হয়েছে যাতে বিকাশকারীদের নিম্নলিখিত বিভাগে ধারণাগুলি বুঝতে সহায়তা করা হয়। গঠন পরিবর্তন হতে পারে এবং হার্ডকোড করা উচিত নয়. বরং RFC অনুযায়ী সম্পদ আবিষ্কার করতে হবে।

  1. প্রিন্সিপাল
    • https://www.googleapis.com/carddav/v1/principals/ userEmail
  2. হোম সেট
    • https://www.googleapis.com/carddav/v1/principals/ userEmail /lists
  3. ঠিকানা বই
    • https://www.googleapis.com/carddav/v1/principals/ userEmail /lists/default
  4. যোগাযোগ
    • https://www.googleapis.com/carddav/v1/principals/ userEmail /lists/default/ contactId

পরিচিতি সিঙ্ক্রোনাইজ করা হচ্ছে

নিম্নলিখিত সমর্থিত অপারেশনগুলির একটি সাধারণ বিবরণ। ডেভেলপারদের প্রাসঙ্গিক RFC-তে বিস্তারিত খোঁজা উচিত। অনুরোধ এবং প্রতিক্রিয়াগুলি বেশিরভাগ XML-এ এনকোড করা হয়। এইগুলি সিঙ্ক্রোনাইজেশনের জন্য ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা ব্যবহৃত প্রধান ক্রিয়াকলাপগুলি:

  • CTag ব্যবহার করে
    • ক্লায়েন্ট প্রোগ্রামগুলি সার্ভারে কোন পরিচিতি পরিবর্তিত হয়েছে কিনা এবং সেইজন্য একটি সিঙ্ক্রোনাইজেশন প্রয়োজন কিনা তা নির্ধারণ করতে ঠিকানা পুস্তকের রিসোর্সে getctag PROPFIND অনুরোধ ব্যবহার করে। এই সম্পত্তির মান পরিবর্তনের গ্যারান্টি দেওয়া হয় যদি কোনো যোগাযোগের পরিবর্তন হয়। ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে এই মানটি সংরক্ষণ করা উচিত এবং এটি শুধুমাত্র প্রাথমিক সিঙ্কে এবং একটি ফলব্যাক হিসাবে ব্যবহার করা উচিত যখন একটি sync-token অবৈধ হয়৷ পর্যায়ক্রমে getctag সম্পত্তির জন্য পোলিং এর ফলে থ্রটলিং হবে।
  • সিঙ্ক-টোকেন ব্যবহার করে
    • ক্লায়েন্ট প্রোগ্রামগুলি তার বর্তমান অবস্থার প্রতিনিধিত্ব করে sync-token পেতে ঠিকানা বইতে sync-token PROPFIND অনুরোধ ব্যবহার করে। ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে অবশ্যই এই মান সঞ্চয় করতে হবে এবং পর্যায়ক্রমিক sync-collection REPORT অনুরোধগুলি ইস্যু করতে হবে যা শেষ জারি করা sync-token থেকে পরিবর্তনগুলি নির্ধারণ করতে হবে৷ ইস্যু করা টোকেনগুলি 29 দিনের জন্য বৈধ, এবং REPORT প্রতিক্রিয়াতে একটি নতুন sync-token থাকবে৷
  • ETags ব্যবহার করে
    • ক্লায়েন্ট অ্যাপ্লিকেশন অ্যাড্রেস বুক রিসোর্সে ( DEPTH_1 এর সমান DEPTH হেডার সহ) একটি getetag PROPFIND অনুরোধ জারি করে৷ প্রতিটি পরিচিতির ETag মান বজায় রাখার মাধ্যমে, একটি ক্লায়েন্ট প্রোগ্রাম তাদের ETag পরিবর্তিত পরিচিতিগুলির মান অনুরোধ করতে পারে।
  • পরিচিতি পুনরুদ্ধার করা হচ্ছে
    • ক্লায়েন্ট অ্যাপ্লিকেশন addressbook-multiget REPORT অনুরোধ জারি করে পরিচিতিগুলি পুনরুদ্ধার করে। যোগাযোগের URI-এর একটি তালিকা দেওয়া হলে, প্রতিবেদনটি ভিকার্ড 3.0 মান হিসাবে অনুরোধ করা সমস্ত পরিচিতি ফেরত দেয়। প্রতিটি এন্ট্রি যোগাযোগের জন্য একটি ETag অন্তর্ভুক্ত.
  • একটি পরিচিতি সন্নিবেশ করা হচ্ছে
    • ক্লায়েন্ট অ্যাপ্লিকেশন VCard 3.0 বিন্যাসে নতুন পরিচিতির সাথে একটি POST অনুরোধ জারি করে। প্রতিক্রিয়াতে নতুন পরিচিতির আইডি থাকবে।
  • একটি পরিচিতি আপডেট করা হচ্ছে
    • ক্লায়েন্ট অ্যাপ্লিকেশনগুলি VCard 3.0 বিন্যাসে আপডেট হওয়া পরিচিতির সাথে একটি PUT অনুরোধ জারি করে। পরিচিতি আপডেট করা হয় যদি পরিচিতিটি ঠিকানা বইতে আগে থেকেই থাকে।
    • ক্লায়েন্ট অ্যাপ্লিকেশনে পরিচিতির বর্তমানে পরিচিত ETag সহ একটি If-Match শিরোনাম অন্তর্ভুক্ত করা উচিত। সার্ভার তখন PUT অনুরোধ ( HTTP 412 সহ) প্রত্যাখ্যান করবে যদি সার্ভারে বর্তমান ETag ক্লায়েন্ট প্রোগ্রামের পাঠানো ETag থেকে আলাদা হয়। এটি আপডেটের আশাবাদী ক্রমিককরণের অনুমতি দেয়।
  • একটি পরিচিতি মুছে ফেলা হচ্ছে
    • ক্লায়েন্ট অ্যাপ্লিকেশনগুলি পরিচিতি URI-এর বিরুদ্ধে একটি DELETE অনুরোধ জারি করে একটি পরিচিতি মুছে দেয়।