বিকাশকারীর নির্দেশিকা: প্রোটোকল

গুরুত্বপূর্ণ : এটি এই পৃষ্ঠার একটি পুরানো সংস্করণ। সর্বশেষ সংস্করণের জন্য, বাম দিকের ন্যাভিবারে লিঙ্কগুলি ব্যবহার করুন৷

ব্লগার ডেটা API ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে Google ডেটা API ফিডের আকারে ব্লগার সামগ্রী দেখতে এবং আপডেট করার অনুমতি দেয়৷

আপনার ক্লায়েন্ট অ্যাপ্লিকেশন নতুন ব্লগ পোস্ট তৈরি করতে, বিদ্যমান ব্লগ পোস্টগুলি সম্পাদনা করতে বা মুছে ফেলতে এবং নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন ব্লগ পোস্টগুলির জন্য অনুসন্ধান করতে Blogger Data API ব্যবহার করতে পারে৷

ব্লগার ডেটা API-এর ক্ষমতার উপর কিছু পটভূমি প্রদান করার পাশাপাশি, এই নথিটি কাঁচা XML এবং HTTP ব্যবহার করে মৌলিক ডেটা API ইন্টারঅ্যাকশনের উদাহরণ প্রদান করে। এই নথিটি পড়ার পরে, আপনি এই বিকাশকারীর গাইডের প্রোগ্রামিং-ভাষা-নির্দিষ্ট বিভাগগুলি পড়ে আমাদের ক্লায়েন্ট লাইব্রেরি ব্যবহার করে API-এর সাথে ইন্টারঅ্যাক্ট করার বিষয়ে আরও জানতে চাইতে পারেন।

বিষয়বস্তু

শ্রোতা

এই দস্তাবেজটি এমন প্রোগ্রামারদের জন্য যারা ক্লায়েন্ট অ্যাপ্লিকেশন লিখতে চান যা ব্লগারের সাথে XML এবং HTTP ব্যবহার করে ইন্টারঅ্যাক্ট করতে পারে৷

এই নথিটি অনুমান করে যে আপনি Google Data APIs প্রোটোকলের পিছনে সাধারণ ধারণাগুলি বোঝেন।

আপনি যদি একটি UNIX সিস্টেম ব্যবহার করেন এবং আপনি কোনো কোড না লিখে এই নথিতে উদাহরণগুলি চেষ্টা করতে চান, তাহলে আপনি UNIX কমান্ড-লাইন ইউটিলিটি curl বা wget দরকারী খুঁজে পেতে পারেন; আরও তথ্যের জন্য, সেই ইউটিলিটিগুলির জন্য ম্যানুয়াল পৃষ্ঠাগুলি দেখুন৷

ব্লগার ডেটা API রেফারেন্স তথ্যের জন্য, প্রোটোকল রেফারেন্স গাইড দেখুন।

শুরু হচ্ছে

একটি ব্লগার অ্যাকাউন্ট তৈরি করা

আপনি পরীক্ষার উদ্দেশ্যে একটি ব্লগার অ্যাকাউন্টের জন্য সাইন আপ করতে চাইতে পারেন। ব্লগার Google অ্যাকাউন্ট ব্যবহার করে, তাই আপনার যদি ইতিমধ্যেই একটি Google অ্যাকাউন্ট থাকে, তাহলে আপনি প্রস্তুত।

ব্লগার পরিষেবাতে প্রমাণীকরণ করা হচ্ছে

আপনি ব্লগার ডেটা API ব্যবহার করে সর্বজনীন এবং ব্যক্তিগত উভয় ফিড অ্যাক্সেস করতে পারেন। পাবলিক ফিডের কোনো প্রমাণীকরণের প্রয়োজন হয় না, তবে সেগুলি শুধুমাত্র পঠনযোগ্য। আপনি যদি ব্লগগুলি সংশোধন করতে চান, তাহলে ব্যক্তিগত ফিডের অনুরোধ করার আগে আপনার ক্লায়েন্টকে প্রমাণীকরণ করতে হবে। এটি দুটি পদ্ধতির যেকোনো একটি ব্যবহার করে প্রমাণীকরণ করতে পারে: AuthSub প্রক্সি প্রমাণীকরণ বা ClientLogin ব্যবহারকারীর নাম/পাসওয়ার্ড প্রমাণীকরণ।

সাধারণভাবে Google Data API-এর সাথে প্রমাণীকরণ সম্পর্কে আরও তথ্যের জন্য, প্রমাণীকরণ ডকুমেন্টেশন দেখুন।

এই নথির পরবর্তী বিভাগে বেশিরভাগ নমুনা অনুমান করে যে আপনি উপযুক্ত প্রমাণীকরণ সরবরাহ করছেন।

AuthSub প্রক্সি প্রমাণীকরণ

AuthSub প্রক্সি প্রমাণীকরণ এমন ওয়েব অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয় যেগুলিকে তাদের ব্যবহারকারীদের Google অ্যাকাউন্টগুলিতে প্রমাণীকরণ করতে হবে৷ ব্লগার ব্যবহারকারীর জন্য ওয়েবসাইট অপারেটর এবং ক্লায়েন্ট কোডের ব্যবহারকারীর নাম এবং পাসওয়ার্ডের অ্যাক্সেস নেই; পরিবর্তে, ক্লায়েন্ট বিশেষ AuthSub টোকেন পায় যা ক্লায়েন্টকে একটি নির্দিষ্ট ব্যবহারকারীর পক্ষে কাজ করার অনুমতি দেয়। আরো বিস্তারিত তথ্যের জন্য, AuthSub ডকুমেন্টেশন দেখুন।

যখন একজন ব্যবহারকারী প্রথম আপনার অ্যাপ্লিকেশন পরিদর্শন করেন, তখন তাদের এখনও প্রমাণীকরণ করা হয়নি। এই ক্ষেত্রে, আপনাকে কিছু তথ্য এবং একটি লিঙ্ক প্রদর্শন করতে হবে যা ব্যবহারকারীকে তাদের ব্লগে অ্যাক্সেসের জন্য আপনার অনুরোধকে প্রমাণীকরণ করতে একটি Google পৃষ্ঠায় নির্দেশ করে।

নিম্নলিখিত ক্যোয়ারী প্যারামিটারগুলি AuthSubRequest URL-এ অন্তর্ভুক্ত করা হয়েছে:

পরবর্তী
পৃষ্ঠার URL যেটি Google প্রমাণীকরণের পরে ব্যবহারকারীকে রিডাইরেক্ট করবে।
সুযোগ
ইঙ্গিত করে যে অ্যাপ্লিকেশনটি ব্লগার ফিড অ্যাক্সেস করার জন্য একটি টোকেন অনুরোধ করছে৷ ব্যবহার করার সুযোগ স্ট্রিং হল http://www.blogger.com/feeds/ (ইউআরএল-এনকোডেড, অবশ্যই)।
নিরাপদ
ক্লায়েন্ট একটি নিরাপদ টোকেন অনুরোধ করছে কিনা তা নির্দেশ করে।
সেশন
ফেরত দেওয়া টোকেনটি বহু-ব্যবহারের (সেশন) টোকেনের জন্য বিনিময় করা যেতে পারে কিনা তা নির্দেশ করে।

AuthSubRequest URL এর মত দেখতে হতে পারে:

https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.blogger.com%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2Fwelcome.html

ব্যবহারকারী Google এর সাইটের লিঙ্ক অনুসরণ করে এবং তাদের Google অ্যাকাউন্টে প্রমাণীকরণ করে।

ব্যবহারকারীর প্রমাণীকরণের পরে, AuthSub সিস্টেম আপনাকে AuthSubRequest URL-এর next ক্যোয়ারী প্যারামিটারে নির্দিষ্ট করা URL-এ পুনঃনির্দেশ করে। AuthSub সিস্টেম সেই URL-এ একটি প্রমাণীকরণ টোকেন যুক্ত করে, token ক্যোয়ারী প্যারামিটারের মান হিসাবে। উদাহরণ স্বরূপ:

http://www.example.com/welcome.html?token=yourAuthToken

এই টোকেন মান একটি একক-ব্যবহারের AuthSub টোকেন প্রতিনিধিত্ব করে। এই উদাহরণে, যেহেতু session=1 নির্দিষ্ট করা হয়েছে, এই টোকেনটি একটি AuthSub সেশন টোকেনের জন্য বিনিময় করা যেতে পারে AuthSubSessionToken পরিষেবাকে কল করে একটি অনুমোদন শিরোনামে একক-ব্যবহারের টোকেন সহ, নিম্নরূপ:

GET /accounts/AuthSubSessionToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourAuthToken"
User-Agent: Java/1.5.0_06
Host: www.google.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

AuthSubSessionToken পরিষেবার প্রতিক্রিয়াতে একটি Token শিরোনাম রয়েছে যাতে সেশন টোকেন এবং একটি Expiration হওয়ার শিরোনাম থাকে যা নির্দেশ করে যে টোকেনটি কতক্ষণ বৈধ থাকবে।

আপনার অ্যাপ্লিকেশন তারপর ব্লগারের সাথে পরবর্তী ইন্টারঅ্যাকশনের Authorization শিরোনামে সেশন টোকেন মান ব্যবহার করতে পারে।

এখানে একটি HTTP অনুরোধের একটি উদাহরণ, যেখানে একটি অ-সুরক্ষিত টোকেন রয়েছে, যা আপনি ব্লগারে পাঠাতে পারেন:

GET /feeds/blogID/blogs/posts/defaults HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Authorization: AuthSub token="yourSessionToken"
User-Agent: Java/1.5.0_06
Host: www.blogger.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

ক্লায়েন্টলগইন ব্যবহারকারীর নাম/পাসওয়ার্ড প্রমাণীকরণ

আপনার ক্লায়েন্ট যদি একটি স্বতন্ত্র, একক-ব্যবহারকারী "ইনস্টল করা" ক্লায়েন্ট (যেমন ডেস্কটপ অ্যাপ্লিকেশন) হয় তাহলে ClientLogin প্রমাণীকরণ ব্যবহার করুন। ClientLogin পদ্ধতি ব্যবহার করে একটি প্রমাণীকরণ টোকেন অনুরোধ করতে, নিম্নলিখিত URL এ একটি POST অনুরোধ পাঠান:

https://www.google.com/accounts/ClientLogin

POST বডিতে ক্যোয়ারী প্যারামিটারের একটি সেট থাকা উচিত যা application/x-www-form-urlencoded কন্টেন্ট টাইপ ব্যবহার করে একটি HTML ফর্ম দ্বারা পাস করা প্যারামিটারের মতো দেখায়। এই পরামিতিগুলি হল:

ইমেইল
ব্যবহারকারীর ইমেইল ঠিকানা.
Passwd
ব্যবহারকারীর পাসওয়ার্ড।
সেবা
ব্লগার পরিষেবার নাম হল blogger । (অন্যান্য পরিষেবার নামের জন্য, পরিষেবার নামের তালিকাটি দেখুন।)
অ্যাকাউন্ট ধরন
ব্লগার API ব্যবহার করার সময় এটি সর্বদা GOOGLE এ সেট করা উচিত। এই প্যারামিটার সেট করতে ব্যর্থ হলে G Suite অ্যাকাউন্ট আছে এমন ব্যবহারকারীদের অ্যাক্সেস আটকাবে।
সূত্র
আপনার ক্লায়েন্ট অ্যাপ্লিকেশন সনাক্ত করে. companyName নাম - applicationName নাম - versionID ফর্মটি নিতে হবে। উদাহরণগুলি exampleCo-exampleApp-1 নামটি ব্যবহার করে।

প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, ইনস্টল করা অ্যাপ্লিকেশন নথির প্রমাণীকরণ দেখুন।

যদি প্রমাণীকরণ অনুরোধ ব্যর্থ হয়, তাহলে সার্ভার একটি HTTP 403 Forbidden স্থিতি কোড প্রদান করে।

যদি এটি সফল হয়, তাহলে সার্ভারটি একটি HTTP 200 OK স্ট্যাটাস কোড প্রদান করে, সাথে প্রতিক্রিয়ার মূল অংশে তিনটি দীর্ঘ আলফানিউমেরিক কোড: SID, LSID এবং Auth। প্রমাণীকরণের মান হল অনুমোদনের টোকেন যা আপনি আপনার পরবর্তী প্রতিটি অনুরোধের সাথে ব্লগারকে পাঠাবেন, তাই সেই মানটির একটি অনুলিপি রাখুন। আপনি SID এবং LSID মান উপেক্ষা করতে পারেন।

যেহেতু ব্যক্তিগত ফিডের সমস্ত অনুরোধের জন্য প্রমাণীকরণের প্রয়োজন হয়, তাই আপনাকে নিম্নলিখিত বিন্যাসটি ব্যবহার করে ব্লগারের সাথে পরবর্তী সমস্ত ইন্টারঅ্যাকশনে অনুমোদনের শিরোনাম সেট করতে হবে:

Authorization: GoogleLogin auth=yourAuthToken

যেখানে yourAuthToken হল Auth স্ট্রিং যা ClientLogin অনুরোধ দ্বারা প্রত্যাবর্তিত হয়।

নমুনা অনুরোধ এবং প্রতিক্রিয়া সহ ClientLogin প্রমাণীকরণ সম্পর্কে আরও তথ্যের জন্য, ইনস্টল করা অ্যাপ্লিকেশন ডকুমেন্টেশনের জন্য প্রমাণীকরণ দেখুন।

দ্রষ্টব্য : একটি প্রদত্ত সেশনে সমস্ত অনুরোধের জন্য একই টোকেন ব্যবহার করুন; প্রতিটি ব্লগার অনুরোধের জন্য একটি নতুন টোকেন অর্জন করবেন না।

দ্রষ্টব্য : ClientLogin ডকুমেন্টেশনে বর্ণিত হিসাবে, প্রমাণীকরণ অনুরোধ ব্যর্থ হতে পারে এবং একটি ক্যাপচা চ্যালেঞ্জের অনুরোধ করতে পারে। আপনি যদি চান যে Google ক্যাপচা চ্যালেঞ্জ ইস্যু করে এবং পরিচালনা করুক, তাহলে ব্যবহারকারীকে https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger এ পাঠান (ক্লায়েন্টলগইন ডকুমেন্টেশনে দেওয়া ক্যাপচা-হ্যান্ডলিং URL-এর পরিবর্তে)।

ব্লগের একটি তালিকা পুনরুদ্ধার করা হচ্ছে

ব্লগার ডেটা এপিআই একটি ফিড প্রদান করে যা একটি নির্দিষ্ট ব্যবহারকারীর জন্য ব্লগের তালিকা করে; সেই ফিডটি "মেটাফিড" নামে পরিচিত।

ব্লগের তালিকা পুনরুদ্ধার করতে নিম্নলিখিত URL-এ একটি HTTP GET পাঠান:

http://www.blogger.com/feeds/userID/blogs

দ্রষ্টব্য : আপনি ব্যবহারকারী আইডির জন্য default প্রতিস্থাপন করতে পারেন, যা ব্লগারকে অনুরোধের সাথে যে ব্যবহারকারীর শংসাপত্রগুলি রয়েছে তার জন্য ব্লগের তালিকা ফেরত দিতে বলে৷

মেটাফিডে একটি এন্ট্রি দেখতে এইরকম হতে পারে:

<entry>
  <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
  <published>2006-08-02T18:44:43.089-07:00</published>
  <updated>2006-11-08T18:10:23.020-08:00</updated>
  <title type='text'>Lizzy's Diary</title>
  <summary type='html'>Being the journal of Elizabeth Bennet</summary>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/'>
  </link>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <link rel='http://schemas.google.com/g/2005#post'
    type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://www.blogger.com/feeds/userID/blogs/blogID'>
  </link>
  <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/userID/blogs/blogID'>
  </link>
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
</entry>

এই উপাদানগুলির প্রত্যেকটির অর্থ কী সে সম্পর্কে তথ্যের জন্য, Google Data APIs প্রোটোকল রেফারেন্স নথি বা Atom 1.0 স্পেসিফিকেশন দেখুন।

আপনার অনুরোধ কোনো কারণে ব্যর্থ হলে, ব্লগার একটি ভিন্ন স্ট্যাটাস কোড ফেরত দিতে পারে। এইচটিটিপি স্ট্যাটাস কোড সম্পর্কে আরও তথ্য Google ডেটা API প্রোটোকল রেফারেন্স নথিতেও পাওয়া যায়।

পোস্ট তৈরি করা হচ্ছে

ব্লগার ডেটা API আপনাকে নতুন ব্লগ এন্ট্রি তৈরি এবং প্রকাশ করার পাশাপাশি এন্ট্রিগুলির খসড়া তৈরি করার অনুমতি দেয়৷

একটি ব্লগ পোস্ট প্রকাশ

প্রমাণীকরণের পরে, আপনি নতুন ব্লগ এন্ট্রি প্রকাশ করতে পারেন।

প্রথমে, প্রকাশ করার জন্য পোস্টের একটি XML উপস্থাপনা তৈরি করুন। এই XML একটি Atom <entry> উপাদানের আকারে হওয়া দরকার, যা দেখতে এইরকম হতে পারে:

<entry xmlns='http://www.w3.org/2005/Atom'>
  <title type='text'>Marriage!</title>
  <content type='xhtml'>
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p>Mr. Darcy has <em>proposed marriage</em> to me!</p>
      <p>He is the last man on earth I would ever desire to marry.</p>
      <p>Whatever shall I do?</p>
    </div>
  </content>
  <category scheme="http://www.blogger.com/atom/ns#" term="marriage" />
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
</entry>

দ্রষ্টব্য : পোস্টের জন্য একটি কাস্টম লেখক সেট করা বর্তমানে সমর্থিত নয়৷ সমস্ত নতুন পোস্ট এমনভাবে প্রদর্শিত হবে যেন সেগুলি বর্তমানে প্রমাণীকৃত ব্যবহারকারী দ্বারা তৈরি করা হয়েছে৷

এই এন্ট্রিটি প্রকাশ করতে, ব্লগের পোস্ট URL-এ নিম্নরূপ পাঠান। প্রথমে, application/atom+xml কন্টেন্ট টাইপ ব্যবহার করে একটি নতুন POST অনুরোধের বডিতে আপনার Atom <entry> উপাদান রাখুন। তারপরে <link> উপাদানটি সনাক্ত করে মেটাফিডে ব্লগের পোস্টের URL খুঁজুন যেখানে rel বৈশিষ্ট্যটি #post দিয়ে শেষ হয়। ব্লগের পোস্ট URL এই উপাদানটির href বৈশিষ্ট্য হিসাবে দেওয়া হয়েছে, যা এই বিন্যাসে রয়েছে:

http://www.blogger.com/feeds/blogID/posts/default

দ্রষ্টব্য : এই URL টি <link rel="service.post"> ট্যাগের URL এর মতই যা ব্লগের মানব-পাঠযোগ্য সংস্করণের <head> বিভাগে প্রদর্শিত হয়৷

ব্লগার আপনার পাঠানো এন্ট্রি ব্যবহার করে একটি ব্লগ পোস্ট তৈরি করে, তারপর একটি <entry> উপাদানের আকারে নতুন পোস্টের একটি অনুলিপি সহ একটি HTTP 201 CREATED স্ট্যাটাস কোড ফেরত দেয়। ফেরত দেওয়া এন্ট্রিটি আপনার পাঠানো একই, তবে এতে ব্লগার দ্বারা যোগ করা বিভিন্ন উপাদান রয়েছে, যেমন একটি <id> উপাদান।

আপনার অনুরোধ কোনো কারণে ব্যর্থ হলে, ব্লগার একটি ভিন্ন স্ট্যাটাস কোড ফেরত দিতে পারে। স্ট্যাটাস কোড সম্পর্কে তথ্যের জন্য, Google Data API প্রোটোকল রেফারেন্স ডকুমেন্ট দেখুন।

একটি খসড়া ব্লগ পোস্ট তৈরি করা হচ্ছে

ড্রাফ্ট পোস্টগুলি পাবলিক পোস্টের মতোই তৈরি করা হয়, কিন্তু একটি <app:control> উপাদান যুক্ত করা হয় যা নির্দেশ করে যে পোস্টটি (এখনও) প্রকাশ করা উচিত নয়।

এই <app:control> উপাদানটিতে একটি শিশু হিসাবে একটি একক <app:draft> উপাদান থাকা উচিত:

<app:control xmlns:app='http://purl.org/atom/app#'>
  <app:draft>yes</app:draft>
</app:control>

পোস্টটি খসড়া হিসাবে স্বীকৃত হওয়ার জন্য <app:draft> উপাদানটিতে থাকা ডেটা অবশ্যই yes স্ট্রিং হতে হবে।

আপনি খসড়া পোস্ট পুনরুদ্ধার করে, স্ট্রিং no <app:draft> উপাদানের ডেটা সেট করে এবং তারপর পোস্টটি আপডেট করে একটি বিদ্যমান খসড়া ব্লগ পোস্টকে একটি প্রকাশিত পোস্টে পরিণত করতে পারেন। পোস্ট পুনরুদ্ধার করা এবং আপডেট করা পরবর্তী দুটি বিভাগে কভার করা হয়েছে।

দ্রষ্টব্য : অ্যাটম পাবলিশিং প্রোটোকল সম্পর্কে আরও তথ্যের জন্য, <app:control> এবং <app:draft> নামস্থান সহ, RFC 5023 দেখুন।

পোস্ট পুনরুদ্ধার করা হচ্ছে

নিম্নলিখিত বিভাগগুলি বর্ণনা করে যে কীভাবে ব্লগ পোস্টগুলির একটি তালিকা পুনরুদ্ধার করা যায়, ক্যোয়ারী প্যারামিটার সহ এবং ছাড়াই৷

আপনি প্রমাণীকরণ ছাড়াই একটি ব্লগার পাবলিক ফিড জিজ্ঞাসা করতে পারেন৷ অতএব, আপনি যখন একটি সর্বজনীন ব্লগ থেকে ব্লগ পোস্ট পুনরুদ্ধার করবেন তখন আপনাকে অনুমোদনের প্যারামিটার সেট করতে হবে না।

সমস্ত ব্লগ পোস্ট পুনরুদ্ধার করা হচ্ছে

ব্যবহারকারীর পোস্টগুলি পুনরুদ্ধার করতে, ব্লগের ফিড URL-এ একটি HTTP GET অনুরোধ পাঠান৷ ব্লগার তারপর উপযুক্ত ব্লগ এন্ট্রি সমন্বিত একটি ফিড ফেরত দেয়। উদাহরণস্বরূপ, liz@gmail.com-এর জন্য ব্লগ পোস্টের একটি তালিকা পেতে, ব্লগারকে নিম্নলিখিত HTTP অনুরোধ পাঠান (অবশ্যই blogID এর জায়গায় উপযুক্ত মান সহ):

GET http://www.blogger.com/feeds/blogID/posts/default

ব্লগার তারপরে একটি HTTP 200 OK স্ট্যাটাস কোড এবং ব্লগ পোস্ট সমন্বিত একটি স্ট্যান্ডার্ড অ্যাটম 1.0 ফিড প্রদান করে।

নিম্নলিখিতটি শুধুমাত্র একটি পোস্ট সহ একটি ব্লগের জন্য একটি ফিডের উদাহরণ। লক্ষ্য করুন যে আমরা এই উদাহরণটিকে কিছুটা সম্পাদনা করেছি যাতে এটি মানুষের দ্বারা আরও পাঠযোগ্য হয়৷ বিশেষ করে, একটি প্রকৃত ব্লগার ফিডে প্রকৃত আইডি এবং URL থাকে।

<feed xmlns='http://www.w3.org/2005/Atom'>
  <id>tag:blogger.com,1999:blog-blogID</id>
  <updated>2006-11-08T18:10:23.020-08:00</updated>
  <title type='text'>Lizzy's Diary</title>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/index.html'>
  </link>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default'>
  </link>
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
  <generator version='7.00' uri='http://www2.blogger.com'>Blogger</generator>
  <entry>
    <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
    <published>2006-11-08T18:10:00.000-08:00</published>
    <updated>2006-11-08T18:10:14.954-08:00</updated>
    <title type='text'>Quite disagreeable</title>
    <content type='html'>&lt;p&gt;I met Mr. Bingley's friend Mr. Darcy
      this evening. I found him quite disagreeable.&lt;/p&gt;</content>
    <link rel='alternate' type='text/html'
      href='http://blogName.blogspot.com/2006/11/quite-disagreeable.html'>
    </link>
    <link rel='self' type='application/atom+xml'
      href='http://blogName.blogspot.com/feeds/posts/default/postID'>
    </link>
    <link rel='edit' type='application/atom+xml'
      href='http://www.blogger.com/feeds/blogID/posts/default/postID'>
    </link>
    <author>
      <name>Elizabeth Bennet</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/profileID</uri>
    </author>
  </entry>
</feed>

ক্যোয়ারী প্যারামিটার ব্যবহার করে পোস্ট পুনরুদ্ধার করা হচ্ছে

ব্লগার ডেটা এপিআই আপনাকে নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন এন্ট্রিগুলির একটি সেট অনুরোধ করতে দেয়, যেমন একটি প্রদত্ত তারিখের পরিসরে প্রকাশিত বা আপডেট করা ব্লগ পোস্টের অনুরোধ করা।

উদাহরণ স্বরূপ, তারিখ-পরিসরের ক্যোয়ারী পাঠাতে অনুরোধের URL-এ published-min এবং published-max প্যারামিটার যোগ করুন। 16 মার্চ, 2008 থেকে 24 মার্চ, 2008 এর মধ্যে তৈরি সমস্ত ব্লগ এন্ট্রি পেতে, ব্লগের ফিড URL-এ একটি HTTP অনুরোধ পাঠান:

GET http://www.blogger.com/feeds/blogID/posts/default?published-min=2008-03-16T00:00:00&published-max=2008-03-24T23:59:59

আপনি যখন সেই GET অনুরোধটি পাঠান, তখন ব্লগার একটি HTTP 200 OK স্ট্যাটাস কোড এবং আপনার নির্দিষ্ট তারিখের সীমার মধ্যে তৈরি করা যেকোনো ব্লগ পোস্ট ধারণকারী একটি ফিড ফেরত দেয়।

updated-min এবং updated-max পরামিতিগুলি একটি নির্দিষ্ট পরিসরের মধ্যে সমস্ত ব্লগ এন্ট্রি আপডেট করার জন্যও ব্যবহার করা যেতে পারে। যাইহোক, নোট করুন যে এই প্যারামিটারগুলি উপেক্ষা করা হয় যদি না orderby প্যারামিটার updated হয়।

ব্লগার ডেটা API নিম্নলিখিত ক্যোয়ারী প্যারামিটার সমর্থন করে:

alt
ফেরত দেওয়ার জন্য ফিডের ধরন, যেমন atom (ডিফল্ট) বা rss
/category
ফিড ফলাফল ফিল্টার করার জন্য বিভাগগুলি (লেবেল হিসাবেও পরিচিত) নির্দিষ্ট করে৷ উদাহরণস্বরূপ, http://www.blogger.com/feeds/ blogID /posts/default/-/Fritz/Laurie Fritz এবং Laurie উভয় লেবেল সহ এন্ট্রি ফেরত দেয়।
সর্বোচ্চ ফলাফল
ফেরত দেওয়ার জন্য সর্বাধিক সংখ্যক এন্ট্রি।
আদেশ দ্বারা
যে ক্রমটিতে এন্ট্রিগুলি ফেরত দিতে হবে, যেমন lastmodified (ডিফল্ট), starttime বা updated
প্রকাশিত-মিনিট, প্রকাশিত-সর্বোচ্চ
এন্ট্রি প্রকাশনার তারিখের সীমানা।
সূচনা-সূচী
প্রথম ফলাফলের 1-ভিত্তিক সূচক যা পুনরুদ্ধার করা হবে (পেজিংয়ের জন্য)।
আপডেট-মিন, আপডেট-সর্বোচ্চ
এন্ট্রি আপডেট তারিখের সীমানা. এই ক্যোয়ারী প্যারামিটার উপেক্ষা করা হয় যদি না orderby প্যারামিটার updated হয়।

ক্যোয়ারী প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, ব্লগার ডেটা API রেফারেন্স গাইড এবং Google ডেটা API রেফারেন্স গাইড দেখুন।

পোস্ট আপডেট করা হচ্ছে

একটি বিদ্যমান ব্লগ পোস্ট আপডেট করার জন্য, প্রথমে আপনি যে এন্ট্রিটি আপডেট করতে চান তা পুনরুদ্ধার করবেন, তারপরে আপনি এটি সংশোধন করবেন এবং তারপরে আপনি পোস্টের সম্পাদনা URL-এ বার্তার অংশে আপডেট করা এন্ট্রি সহ একটি PUT অনুরোধ পাঠাবেন৷ নিশ্চিত করুন যে আপনি যে এন্ট্রিটি PUT <id> মানটি বিদ্যমান এন্ট্রির <id> সাথে ঠিক মেলে।

সম্পাদনা URL নিম্নলিখিত এন্ট্রিতে হাইলাইট করা হয়েছে:

<entry>
  <id>tag:blogger.com,1999:blog-blogID.post-postID</id>
  <published>2006-11-08T18:10:00.000-08:00</published>
  <updated>2006-11-08T18:10:14.954-08:00</updated>
  <title type='text'>Quite disagreeable</title>
  <content type='html'>&lt;p&gt;I met Mr. Bingley's friend Mr. Darcy
    this evening. I found him quite disagreeable.&lt;/p&gt;</content>
  <link rel='alternate' type='text/html'
    href='http://blogName.blogspot.com/2006/11/quite-disagreeable.html'>
  </link>
  <link rel='self' type='application/atom+xml'
    href='http://blogName.blogspot.com/feeds/posts/default/postID'>
  </link>
  <link rel='edit' type='application/atom+xml'
    href='http://www.blogger.com/feeds/blogID/posts/default/postID'>
  </link>
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Bingley" />
  <category scheme="http://www.blogger.com/atom/ns#" term="Mr. Darcy" />
  <author>
    <name>Elizabeth Bennet</name>
    <email>noreply@blogger.com</email>
    <uri>http://www.blogger.com/profile/profileID</uri>
  </author>
</entry>

গুরুত্বপূর্ণ : ফরোয়ার্ড সামঞ্জস্য নিশ্চিত করতে, নিশ্চিত হন যে আপনি যখন একটি PUT এন্ট্রি রাখেন, তখন আপনি ব্লগার থেকে এন্ট্রিটি পুনরুদ্ধার করার সময় উপস্থিত সমস্ত XML সংরক্ষণ করেন৷ অন্যথায়, যখন আমরা নতুন স্টাফ প্রয়োগ করি এবং ফিডে <new-awesome-feature> উপাদানগুলি অন্তর্ভুক্ত করি, আপনার ক্লায়েন্ট সেগুলি ফেরত দেবে না এবং আপনার ব্যবহারকারীরা মিস করবেন। Google Data API ক্লায়েন্ট লাইব্রেরিগুলি সমস্ত এটি সঠিকভাবে পরিচালনা করে, তাই আপনি যদি লাইব্রেরিগুলির একটি ব্যবহার করেন তবে আপনি সম্পূর্ণরূপে প্রস্তুত৷

দ্রষ্টব্য : পোস্টের সাথে যুক্ত লেখক ডেটা পরিবর্তন করা বর্তমানে সমর্থিত নয়।

সমস্যা সমাধানের পরামর্শ : কিছু ফায়ারওয়াল HTTP PUT বার্তাগুলিকে ব্লক করে। এটির কাছাকাছি পেতে, আপনি একটি X-HTTP-Method-Override: PUT শিরোনাম একটি POST অনুরোধে অন্তর্ভুক্ত করতে পারেন৷ বিস্তারিত জানার জন্য, Google Data API প্রোটোকল বেসিক ডকুমেন্ট দেখুন।

পোস্ট মুছে ফেলা হচ্ছে

একটি পোস্ট মুছে ফেলার জন্য, পোস্টের সম্পাদনা URL-এ একটি DELETE অনুরোধ পাঠান৷ এটি পোস্ট আপডেট করতে ব্যবহৃত একই URL।

সমস্যা সমাধানের পরামর্শ : কিছু ফায়ারওয়াল HTTP DELETE বার্তাগুলিকে ব্লক করে। এটির কাছাকাছি পেতে, আপনি একটি X-HTTP-Method-Override: DELETE একটি POST অনুরোধে শিরোনাম মুছুন৷ বিস্তারিত জানার জন্য, Google Data API প্রোটোকল বেসিক ডকুমেন্ট দেখুন।

মন্তব্য

ব্লগার ডেটা API মন্তব্যগুলি তৈরি, পুনরুদ্ধার এবং মুছে ফেলার অনুমতি দেয়৷ মন্তব্য আপডেট করা সমর্থিত নয় (এটি ওয়েব ইন্টারফেসে উপলব্ধ নয়)।

মন্তব্য তৈরি করা হচ্ছে

একটি মন্তব্য পোস্ট করতে, নিম্নলিখিত মত একটি Atom <entry> উপাদান তৈরি করুন:

  <entry xmlns='http://www.w3.org/2005/Atom'>
    <title type="text">This is my first comment</title>
    <content type="html">This is my first comment</content>
  </entry>

এই মন্তব্যটি প্রকাশ করতে, application/atom+xml বিষয়বস্তু প্রকার ব্যবহার করে একটি নতুন POST অনুরোধের মূল অংশে আপনার Atom <entry> উপাদানটি রাখুন। তারপর উপযুক্ত ব্লগার URL-এ POST অনুরোধ পাঠান:

POST http://www.blogger.com/feeds/blogID/postID/comments/default

দ্রষ্টব্য : বর্তমানে, আপনি শুধুমাত্র প্রমাণীকৃত ব্যবহারকারীর মালিকানাধীন ব্লগে মন্তব্য পোস্ট করতে পারেন।

দ্রষ্টব্য : মন্তব্যের জন্য একটি কাস্টম লেখক সেট করা বর্তমানে সমর্থিত নয়৷ সমস্ত নতুন মন্তব্য এমনভাবে প্রদর্শিত হবে যেন সেগুলি বর্তমানে প্রমাণীকৃত ব্যবহারকারী দ্বারা তৈরি করা হয়েছে৷

মন্তব্য পুনরুদ্ধার করা হচ্ছে

আপনি এই পোস্টের মন্তব্য ফিড URL এ একটি GET পাঠিয়ে একটি নির্দিষ্ট পোস্টের জন্য মন্তব্য পুনরুদ্ধার করতে পারেন:

GET http://www.blogger.com/feeds/blogID/postID/comments/default

অথবা আপনি ব্লগের মন্তব্য ফিড URL ব্যবহার করে সমস্ত পোস্ট থেকে মন্তব্য পেতে পারেন:

GET http://www.blogger.com/feeds/blogID/comments/default

এই অনুরোধগুলি এমন একটি মন্তব্য ফিড ফেরত দেয় যা এইরকম দেখায়:

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/"
         xmlns:thr="http://purl.org/syndication/thread/1.0">
  <id>tag:blogger.com,1999:blog-blogID.post-postID.comment-commentID</id>
  <updated>2007-04-04T21:56:29.803-07:00</updated>
  <title type="text">My Blog : Time to relax</title>
  <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html"/>
  <link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default"/>
  <link rel="self" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default"/>
  <author>
    <name>Blog Author name</name>
  </author>
  <generator version="7.00" uri="http://www2.blogger.com">Blogger</generator>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <entry>
    <id>tag:blogger.com,1999:blog-blogID.post-commentID</id>
    <published>2007-04-04T21:56:00.000-07:00</published>
    <updated>2007-04-04T21:56:29.803-07:00</updated>
    <title type="text">This is my first comment</title>
    <content type="html">This is my first comment</content>
    <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html#commentID"/>
    <link rel="self" type="application/atom+xml" href="http://blogName.blogspot.com/feeds/postID/comments/default/commentID"/>
    <link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/blogID/postID/comments/default/commentID"/>
    <thr:in-reply-to href="http://blogName.blogspot.com/2007/04/first-post.html" 
                     ref="tag:blogger.com,1999:blog-blogID.post-postID" 
                     source="http://www.blogger.com/feeds/posts/default/blogID"
                     type="text/html"/>
    <author>
      <name>Blog Author name</name>
      <email>blog_author@gmail.com</email>
      <uri>http://www.blogger.com/profile/userID</uri>
    </author>
    <thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' 
         href='http://blogName.blogspot.com/2007/04/first-post.html' 
         ref='tag:blogger.com,1999:blog-blogID.post-postID' 
         source='http://blogName.blogspot.com/feeds/posts/default/postID'
         type='text/html' />
  </entry>
</feed>

মন্তব্য মুছে ফেলা হচ্ছে

একটি মন্তব্য মুছে ফেলতে, মন্তব্যের সম্পাদনা URL-এ একটি DELETE অনুরোধ পাঠান৷ এই URLটি উপরে মন্তব্য ফিডে হাইলাইট করা হয়েছে।

রপ্তানি বিন্যাস

ব্লগার ব্যবহারকারীদের একটি ব্লগার এক্সপোর্ট ফাইল ব্যবহার করে তাদের ব্লগ রপ্তানি এবং আমদানি করতে দেয়। এই এক্সপোর্ট ফাইলটিতে একটি ব্লগের জন্য সমস্ত পোস্ট এবং মন্তব্য রয়েছে৷ এক্সপোর্ট ফাইলের বিন্যাসটি ঠিক একই অ্যাটম বিন্যাস যা পোস্ট এবং মন্তব্য পুনরুদ্ধার করার বিভাগে বর্ণিত হয়েছে। এই রপ্তানি ফাইলটিতে পোস্ট ফিডের বিষয়বস্তু এবং মন্তব্য ফিডের বিষয়বস্তু একটি নথিতে মিলিত হবে।

এক্সপোর্ট ফরম্যাট ব্যবহার করে ব্লগ ডেটা রপ্তানি বা আমদানি করতে, আপনি ব্লগের সেটিংস পৃষ্ঠায় যেতে পারেন। ডেটা API ব্যবহার করে একটি ব্লগের জন্য এক্সপোর্ট ফাইল পুনরুদ্ধার করতে, নিম্নলিখিত URL ব্যবহার করুন:

GET http://www.blogger.com/feeds/blogID/archive

রপ্তানি ফাইল আমদানি করতে, অনুরোধের ডেটা হিসাবে রপ্তানি ফাইলের বিষয়বস্তু এবং বিষয়বস্তুর প্রকার হিসাবে application/atom+xml সহ নিম্নলিখিত URL-এ একটি POST অনুরোধ তৈরি করুন:

POST http://www.blogger.com/feeds/blogID/archive/full

উপরের সমর্থন ক্যোয়ারী পরামিতিগুলির জন্য URLগুলির মধ্যে একটিও নয়৷ উভয় অনুরোধে অবশ্যই প্রমাণীকরণ তথ্য থাকতে হবে এবং শুধুমাত্র ব্লগ প্রশাসকরা এই ফিড URL ব্যবহার করে ব্লগ আমদানি/রপ্তানি করতে সক্ষম হবেন।

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

ব্লগার কীভাবে এক্সপোর্ট ফাইলে অ্যাটম ফর্ম্যাট ব্যবহার করে সে সম্পর্কে আরও তথ্যের জন্য, প্রোটোকল রেফারেন্স গাইড দেখুন।

উপরে ফিরে যাও