বিকাশকারীর নির্দেশিকা: .NET

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

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

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

ব্লগার ডেটা এপিআই এর ক্ষমতার উপর কিছু পটভূমি প্রদান করার পাশাপাশি, এই নথিটি .NET ক্লায়েন্ট লাইব্রেরি ব্যবহার করে মৌলিক ডেটা API ইন্টারঅ্যাকশনের উদাহরণ প্রদান করে। আপনি যদি লাইব্রেরি ব্যবহার করে এমন অন্তর্নিহিত প্রোটোকল সম্পর্কে আরও বুঝতে আগ্রহী হন তবে এই বিকাশকারীর গাইডের প্রোটোকল বিভাগটি দেখুন।

বিষয়বস্তু

শ্রোতা

এই নথিটি এমন প্রোগ্রামারদের জন্য যারা .NET ক্লায়েন্ট অ্যাপ্লিকেশন লিখতে চান যা ব্লগারের সাথে যোগাযোগ করতে পারে।

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

ক্লায়েন্ট লাইব্রেরি দ্বারা প্রদত্ত ক্লাস এবং পদ্ধতি সম্পর্কে তথ্যের জন্য, .NET ক্লায়েন্ট লাইব্রেরি API রেফারেন্স দেখুন। সাধারণ ব্লগার ডেটা API রেফারেন্স তথ্যের জন্য, প্রোটোকল রেফারেন্স গাইড দেখুন।

শুরু হচ্ছে

ক্লায়েন্ট লাইব্রেরি সেট আপ করতে সাহায্যের জন্য, শুরু করার নির্দেশিকা দেখুন।

.NET ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে, আপনার প্রয়োজন হবে .NET 1.1 রানটাইম, এবং আপনার সমস্ত প্যাচে বর্তমান থাকা উচিত। ক্লায়েন্ট লাইব্রেরি ডাউনলোড করার পরে, আপনি ডিস্ট্রিবিউশনের lib/Release সাবডিরেক্টরিতে শুরু করার জন্য প্রয়োজনীয় DLL খুঁজে পাবেন।

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

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

নমুনা কোড চলমান

এই নথিতে দেখানো সমস্ত নমুনা কোড সহ একটি সম্পূর্ণ কর্মক্ষম নমুনা ক্লায়েন্ট, .NET ক্লায়েন্ট লাইব্রেরি প্রকল্পে উপলব্ধ। নমুনাটি SVN সংগ্রহস্থলের উৎস ট্যাবে /trunk/clients/cs/samples/blogger/ConsoleSample.cs- এ অবস্থিত।

এই নমুনা কম্পাইল এবং চালানোর আগে, username , password , blogName , এবং postId এর মানগুলি যথাযথ মান সহ আপডেট করুন। username এবং password মানগুলি ব্লগারে লগ ইন করতে ব্যবহৃত শংসাপত্রগুলি উপস্থাপন করে৷ blogName মান হল আপনার ব্লগের ব্লগস্পট URL এর শুরু।

নমুনা ক্লায়েন্ট ব্লগার ডেটা API-এর ব্যবহার প্রদর্শনের জন্য প্রদত্ত ব্লগে বেশ কিছু অপারেশন করে।

এই নথিতে উদাহরণগুলিকে আপনার নিজের কোডে কম্পাইল করতে, আপনার বিবৃতি using নিম্নলিখিতগুলির প্রয়োজন হবে:

using Google.GData.Client;
using System.Net;
using System.Xml;
using System.Text.RegularExpressions;

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

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

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

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

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

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

ধরুন নিম্নলিখিত ASP হাইপারলিঙ্ক আপনার পৃষ্ঠায় সংজ্ঞায়িত করা হয়েছে:

<asp:HyperLink ID="GotoAuthSubLink" runat="server"/>

তারপরে আপনার অ্যাপ্লিকেশনের জন্য AuthSubRequest URL তৈরি করতে, নিম্নরূপ একটি .NET ক্লায়েন্ট লাইব্রেরি কল করুন:

GotoAuthSubLink.Text = "Login to your Google Account";
GotoAuthSubLink.NavigateUrl =
  AuthSubUtil.getRequestUrl("http://www.example.com/RetrieveToken",
  "http://www.blogger.com/feeds/",
  false,
  true);

getRequestUrl পদ্ধতি নিম্নলিখিত পরামিতিগুলি নেয় (AuthSubRequest হ্যান্ডলার দ্বারা ব্যবহৃত ক্যোয়ারী প্যারামিটারের সাথে সম্পর্কিত):

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

উপরের উদাহরণটি এমন একটি কল দেখায় যা একটি সুরক্ষিত টোকেনের অনুরোধ করে না ( secure এর মান false )। ফলে অনুরোধ 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%2FRetrieveToken

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

ব্যবহারকারীর প্রমাণীকরণের পরে, AuthSub সিস্টেম আপনাকে AuthSubRequest URL-এর next ক্যোয়ারী প্যারামিটারে নির্দিষ্ট করা URL-এ পুনঃনির্দেশ করে। AuthSub সিস্টেম সেই URL-এ একটি প্রমাণীকরণ টোকেন যুক্ত করে, token ক্যোয়ারী প্যারামিটারের মান হিসাবে। অতএব, ASP পৃষ্ঠার Request.QueryString অবজেক্টে টোকেনটি একটি পরিবর্তনশীল হিসাবে অ্যাক্সেসযোগ্য। ব্যবহারকারীকে এমন একটি URL এ পুনঃনির্দেশিত করা হয়েছে যা দেখতে এইরকম:

http://www.example.com/RetrieveToken?token=yourAuthToken

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

SessionsessionToken = AuthSubUtil.exchangeForSessionToken(Request.QueryStringtoken, null);

অর্থাৎ, আপনি null (অনিবন্ধিত মোডের জন্য) বা একটি প্রাইভেট কী (নিবন্ধিত মোডের জন্য) সহ, exchangeForSessionToken পদ্ধতিতে আপনার একবার-ব্যবহারের টোকেনটি পাস করেন এবং AuthSub ইন্টারফেস একটি সেশন টোকেন প্রদান করে। নিবন্ধিত অ্যাপ্লিকেশন এবং ব্যক্তিগত কী সম্পর্কে আরও তথ্যের জন্য, AuthSub ডকুমেন্টেশনের " অনুরোধ স্বাক্ষর করা " বিভাগটি দেখুন৷

আপনার অ্যাপ্লিকেশন তারপর ব্লগারের সাথে পরবর্তী মিথস্ক্রিয়াতে সেশন টোকেন মান ব্যবহার করতে পারে। .NET ক্লায়েন্ট লাইব্রেরীকে প্রতিটি অনুরোধের সাথে স্বয়ংক্রিয়ভাবে অনুমোদন শিরোনাম (সেশন টোকেন ধারণকারী) পাঠাতে বলতে, নিম্নলিখিতগুলি করুন:

GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("blogger", "BloggerSampleApp");
authFactory.Token = SessionsessionToken.ToString();
Service service = new Service(authFactory.ApplicationName);
service.RequestFactory = authFactory;

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

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

Service service = new Service("blogger", "exampleCo-exampleApp-1");
service.Credentials = new GDataCredentials("user@example.com", "secretPassword");
GDataGAuthRequestFactory factory = (GDataGAuthRequestFactory) service.RequestFactory;
factory.AccountType = "GOOGLE";

উপরের স্নিপেটে, আমরা Service কনস্ট্রাক্টরের কাছে দুটি প্যারামিটার পাস করি। প্রথম প্যারামিটার হল সেই পরিষেবাটির নাম যার সাথে আমরা ইন্টারঅ্যাক্ট করতে চাই। দ্বিতীয় প্যারামিটারটি companyName - applicationName - versionID ফর্মে আমাদের অ্যাপ্লিকেশনটির নাম। আমরা G Suite ব্যবহারকারীদের জন্য সঠিক প্রমাণীকরণের অনুমতি দেওয়ার জন্য শুধুমাত্র একটি GOOGLE অ্যাকাউন্টের প্রকার ব্যবহার করার জন্য Service.RequestFactory সেট করেছি।

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

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

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

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

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

নিম্নলিখিত নমুনা কোড মেটাফিড পুনরুদ্ধার করতে একটি প্রমাণীকৃত Service বস্তু ব্যবহার করে এবং তারপর প্রতিটি ব্লগের শিরোনাম মুদ্রণ করে।

query.Uri = new Uri("http://www.blogger.com/feeds/default/blogs");
AtomFeed feed = null;
try
{
  feed = service.Query(query);
  foreach (AtomEntry entry in feed.Entries)
  {
    Console.WriteLine("Blog Title: " + entry.Title.Text);
  }
}

getFeed পদ্ধতি দ্বারা ব্যবহৃত URL টি নোট করুন। এটি ডিফল্ট মেটাফিড ইউআরএল; এটি বর্তমানে প্রমাণীকৃত ব্যবহারকারীর জন্য ব্লগের একটি তালিকা প্রদান করে। অন্য ব্যবহারকারীর জন্য একটি ফিড অ্যাক্সেস করতে, আপনি মেটাফিড ইউআরএলে default জায়গায় ব্যবহারকারীর আইডি রাখতে পারেন। ব্যবহারকারীর ID হল ব্যবহারকারীর প্রোফাইল URL-এর শেষে অঙ্কের স্ট্রিং।

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

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

নিম্নলিখিত সমস্ত নমুনা অনুমান করে যে আপনার কাছে একটি প্রমাণীকৃত Service বস্তু রয়েছে।

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

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

নতুন ব্লগ এন্ট্রি প্রকাশ করতে আপনি .NET ক্লায়েন্ট লাইব্রেরি ব্যবহার করতে পারেন।

প্রথমে, ব্লগ পোস্টের প্রতিনিধিত্ব করার জন্য একটি AtomEntry অবজেক্ট তৈরি করুন। তারপর আপনি ব্লগ পোস্টের শিরোনাম, বিষয়বস্তু এবং অন্যান্য বৈশিষ্ট্য সেট করতে পারেন। অবশেষে, পোস্টটি সন্নিবেশ করতে Service বস্তুটি ব্যবহার করুন। কিভাবে একটি নতুন ব্লগ পোস্ট প্রকাশ করতে হয় তার একটি উদাহরণ এখানে দেওয়া হল:

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = "Marriage!";
newPost.Content = new AtomContent();
newPost.Content.Content = "<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>";
newPost.Content.Type = "xhtml";

Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
AtomEntry createdEntry = service.Insert(blogFeedUri, newPost);

Insert পদ্ধতি একটি প্যারামিটার হিসাবে পরিষেবার পোস্ট URL নেয়। তারপর পদ্ধতিটি ব্লগার দ্বারা সংরক্ষিত হিসাবে এন্ট্রি ফেরত দেয়। ফেরত দেওয়া এন্ট্রিটি আপনার পাঠানো একই, তবে এতে ব্লগার দ্বারা যোগ করা বিভিন্ন উপাদান রয়েছে, যেমন একটি পোস্ট আইডি।

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

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

ড্রাফ্ট পোস্টগুলি পাবলিক পোস্টগুলির মতোই তৈরি করা হয়, তবে আপনাকে AtomEntry অবজেক্টের draft বৈশিষ্ট্য সেট করতে হবে। উপরের ব্লগ পোস্টটি হাইলাইট করা লাইন যোগ করে একটি খসড়া হিসাবে তৈরি করা যেতে পারে:

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = "Marriage!";
newPost.Content = new AtomContent();
newPost.Content.Content = "<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>";
newPost.Content.Type = "xhtml";
newPost.IsDraft = true;

Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
AtomEntry createdEntry = service.Insert(blogFeedUri, newPost);

আপনি খসড়া পোস্ট পুনরুদ্ধার করে, ড্রাফ্ট অ্যাট্রিবিউটটিকে মিথ্যাতে সেট করে এবং তারপর পোস্টটি আপডেট করে একটি বিদ্যমান খসড়া ব্লগ পোস্টকে একটি প্রকাশিত পোস্টে পরিণত করতে পারেন৷ আমরা পরবর্তী দুটি বিভাগে পোস্ট পুনরুদ্ধার এবং আপডেট কভার করব।

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

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

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

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

ব্যবহারকারীর পোস্ট পুনরুদ্ধার করতে, ব্লগ মেটাফিড পুনরুদ্ধার করতে ব্যবহৃত একই getFeed পদ্ধতিতে কল করুন, কিন্তু এবার ব্লগ-পোস্ট ফিড URL পাঠান:

query.Uri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
feed = service.Query(query);
Console.WriteLine(feed.Title.Text);
foreach (AtomEntry entry in feed.Entries)
{
  Console.WriteLine("Entry Title: " + entry.Title.Text);
}

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

ব্লগার ডেটা এপিআই আপনাকে নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন একটি এন্ট্রির সেটের অনুরোধ করতে দেয়, যেমন একটি প্রদত্ত তারিখের পরিসরে প্রকাশিত বা আপডেট করা ব্লগ পোস্টের অনুরোধ করা। এটি করার জন্য, আপনি একটি FeedQuery অবজেক্ট তৈরি করুন এবং এটি Service.Query() পদ্ধতিতে পাস করুন।

উদাহরণস্বরূপ, একটি তারিখ-পরিসরের প্রশ্ন পাঠাতে, FeedQuery অবজেক্টের MinPublication এবং MaxPublication সদস্যদের সেট করুন। নিম্নলিখিত কোড স্নিপেট প্রদত্ত শুরুর সময় এবং শেষ সময়ের মধ্যে প্রকাশিত প্রতিটি ব্লগ পোস্টের শিরোনাম মুদ্রণ করে:

FeedQuery query = new FeedQuery();
query.Uri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
query.MinPublication = new DateTime(2006, 1, 1);
query.MaxPublication = new DateTime(2007, 4, 12);
AtomFeed feed = service.Query(query);
foreach (AtomEntry entry in feed.Entries)
{
  Console.WriteLine("  Entry Title: " + entry.Title.Text);
}

লক্ষ্য করুন যে FeedQuery অবজেক্টটি পোস্ট পুনরুদ্ধার করতে ব্যবহৃত একই পোস্ট ফিড ইউআরএল ব্যবহার করে তৈরি করা হয়েছে।

ব্লগার ডেটা 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 রেফারেন্স গাইড দেখুন।

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

একটি বিদ্যমান ব্লগ পোস্ট আপডেট করার জন্য, প্রথমে আপনি যে এন্ট্রিটি আপডেট করতে চান তা পুনরুদ্ধার করবেন, তারপরে আপনি এটি সংশোধন করবেন এবং তারপরে আপনি এন্ট্রির Update() পদ্ধতি ব্যবহার করে ব্লগারে পাঠাবেন৷ নিম্নলিখিত কোড স্নিপেটটি একটি ব্লগ এন্ট্রির শিরোনাম পরিবর্তন করে, ধরে নিই যে আপনি ইতিমধ্যেই সার্ভার থেকে এন্ট্রিটি পুনরুদ্ধার করেছেন৷

static AtomEntry EditEntry(AtomEntry toEdit)
{
  // Edit the entry by changing the Title and calling Update().
  if (toEdit != null)
  {
    toEdit.Title.Text = "Marriage Woes!";
    toEdit = toEdit.Update();
  }
  return toEdit;
}

উপরের কোডটি একটি AtomEntry প্রদান করে যাতে সম্পূর্ণ নতুন আপডেট করা পোস্ট রয়েছে। অন্য কোনো বৈশিষ্ট্য আপডেট করতে, Update() কল করার আগে সেগুলোকে AtomEntry অবজেক্টে সেট করুন।

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

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

একটি পোস্ট মুছে ফেলার জন্য, একটি বিদ্যমান AtomEntry অবজেক্টে Delete পদ্ধতিতে কল করুন, যেমন:

static void DeleteEntry(AtomEntry toDelete)
{
  // Delete the edited entry
  if (toDelete != null)
  {
    toDelete.Delete();
  }
}

মন্তব্য

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

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

একটি মন্তব্য পোস্ট করতে, একটি AtomEntry অবজেক্ট তৈরি করুন এবং এটি নিম্নরূপ ঢোকান:

AtomEntry comment;
comment = new AtomEntry();
comment.Title.Text = "This is my first comment";
comment.Content.Content = "This is my first comment";
Uri commentPostUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/" + entryId + "/comments/default");
postedComment = service.Insert(commentPostUri, comment);

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

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

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

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

static void ListEntryComments(Service service, Uri commentUri)
{
  if (commentUri != null)
  {
    // Retrieve all comments on a blog entry
    FeedQuery query = new FeedQuery();
    query.Uri = commentUri;
    AtomFeed feed = service.Query(query);
    foreach (AtomEntry entry in feed.Entries)
    {
      Console.WriteLine("  Comment Title: " + entry.Title.Text);
    }
  }
}

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

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

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

একটি মন্তব্য মুছে ফেলার জন্য, এই মত একটি বিদ্যমান মন্তব্য AtomEntry অবজেক্টে Delete() পদ্ধতিতে কল করুন:

static void DeleteComment(AtomEntry commentEntry)
{
  if (commentEntry != null)
  {
    // Delete the comment.
    commentEntry.Delete();
  }
}

উপরে ফিরে যান