বিকাশকারীর গাইড: জাভা

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

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

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

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

বিষয়বস্তু

শ্রোতা

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

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

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

শুরু হচ্ছে

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

জাভা ক্লায়েন্ট লাইব্রেরির জাভা 1.5 প্রয়োজন। ক্লায়েন্ট লাইব্রেরি ডাউনলোড করার পরে, আপনি java/lib/gdataclient-1.0.jar ফাইলে শুরু করার জন্য প্রয়োজনীয় ক্লাসগুলি খুঁজে পাবেন।

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

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

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

এই নথিতে দেখানো সমস্ত নমুনা কোড সহ একটি সম্পূর্ণ কর্মক্ষম নমুনা ক্লায়েন্ট, gdata/java/sample/blogger/BloggerClient.java ডিরেক্টরির অধীনে Java ক্লায়েন্ট লাইব্রেরি বিতরণে উপলব্ধ। নির্মাণ এবং সম্পাদন নির্দেশাবলী README.txt ফাইলের একই ডিরেক্টরিতে অন্তর্ভুক্ত করা হয়েছে।

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

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

import com.google.gdata.client.*;
import com.google.gdata.data.*;
import com.google.gdata.util.*;
import java.io.IOException;
import java.net.URL;

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

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

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

এই নথির পরবর্তী বিভাগে বেশিরভাগ নমুনা ধরে নেয় যে আপনার কাছে একটি প্রমাণীকৃত GoogleService অবজেক্ট আছে।

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

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

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

String next = "http://www.example.com/welcome.html";
String scope = "http://www.blogger.com/feeds/";
boolean secure = false;
boolean session = true;
String authSubLogin = AuthSubUtil.getRequestUrl(next, scope, secure, session);

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%2Fwelcome.html

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

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

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

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

String token = AuthSubUtil.getTokenFromReply(urlFromAuthSub);
String sessionToken = AuthSubUtil.exchangeForSessionToken(token, null);

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

আপনার অ্যাপ্লিকেশন তারপর ব্লগারের সাথে পরবর্তী মিথস্ক্রিয়াতে সেশন টোকেন ব্যবহার করতে পারে। জাভা ক্লায়েন্ট লাইব্রেরীকে প্রতিটি অনুরোধের সাথে স্বয়ংক্রিয়ভাবে সেশন টোকেন পাঠাতে বলতে, GoogleService অবজেক্টের setAuthSubToken পদ্ধতিতে কল করুন:

GoogleService.setAuthSubToken(sessionToken, null);

এর পরে, ক্লায়েন্ট লাইব্রেরি স্বয়ংক্রিয়ভাবে প্রতিটি অনুরোধের সাথে টোকেন পাঠায়।

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

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

GoogleService myService = new GoogleService("blogger", "exampleCo-exampleApp-1");
myService.setUserCredentials("user@example.com", "secretPassword");

উপরের স্নিপেটে, আমরা GoogleService কনস্ট্রাক্টরের কাছে দুটি প্যারামিটার পাস করি। প্রথম প্যারামিটার হল সেই পরিষেবাটির নাম যার সাথে আমরা ইন্টারঅ্যাক্ট করতে চাই। দ্বিতীয় প্যারামিটারটি companyName - applicationName - versionID ফর্মে আমাদের অ্যাপ্লিকেশনটির নাম।

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

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

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

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

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

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

public static void printUserBlogs(GoogleService myService)
    throws ServiceException, IOException {

  // Request the feed
  final URL feedUrl = new URL("http://www.blogger.com/feeds/default/blogs");
  Feed resultFeed = myService.getFeed(feedUrl, Feed.class);

  // Print the results
  System.out.println(resultFeed.getTitle().getPlainText());
  for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    Entry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
  }
}

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

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

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

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

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

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

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

public static Entry createPost(
    GoogleService myService, String blogID, String title,
    String content, String userName)
    throws ServiceException, IOException {
  // Create the entry to insert
  Entry myEntry = new Entry();
  myEntry.setTitle(new PlainTextConstruct(title));
  myEntry.setContent(new PlainTextConstruct(content));

  // Ask the service to insert the new entry
  URL postUrl = new URL("http://www.blogger.com/feeds/" + blogID + "/posts/default");
  return myService.insert(postUrl, myEntry);
}

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

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

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

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

public static Entry createPost(GoogleService myService, String blogId,
    String title, String content, String userName,
    Boolean isDraft)
    throws ServiceException, IOException {
  // Create the entry to insert
  Entry myEntry = new Entry();
  myEntry.setTitle(new PlainTextConstruct(title));
  myEntry.setContent(new PlainTextConstruct(content));
  myEntry.setDraft(isDraft);

  // Ask the service to insert the new entry
  URL postUrl = new URL("http://www.blogger.com/feeds/" + blogID + "/posts/default");
  return myService.insert(postUrl, myEntry);
}

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

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

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

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

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

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

public static void printAllPosts(
    GoogleService myService, String blogId)
    throws ServiceException, IOException {
  // Request the feed
  URL feedUrl = new URL("http://www.blogger.com/feeds/" + blogID + "/posts/default");
  Feed resultFeed = myService.getFeed(feedUrl, Feed.class);

  // Print the results
  System.out.println(resultFeed.getTitle().getPlainText());
  for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    Entry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
  }
  System.out.println();
}

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

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

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

public static void printDateRangeQueryResults(
    GoogleService myService, String blogId,
    DateTime startTime, DateTime endTime)
    throws ServiceException, IOException {
  // Create query and submit a request
  URL feedUrl = new URL("http://www.blogger.com/feeds/" + blogID + "/posts/default");
  Query myQuery = new Query(feedUrl);
  myQuery.setPublishedMin(startTime);
  myQuery.setPublishedMax(endTime);
  Feed resultFeed = myService.query(myQuery, Feed.class);

  // Print the results
  System.out.println(resultFeed.getTitle().getPlainText() +
      " posts between " + startTime + " and " + endTime);
  for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    Entry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
    System.out.println("\t" + entry.getUpdated().toStringRfc822());
  }
  System.out.println();
}

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

ব্লগার ডেটা API নিম্নলিখিত Query পদ্ধতিগুলিকে সমর্থন করে:

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

দ্রষ্টব্য : orderby ক্যোয়ারী প্যারামিটারের জন্য বর্তমানে কোন সেটার নেই। যাইহোক, আপনি যদি এটি সেট করতে চান তবে আপনি এখনও Query.addCustomParameter() পদ্ধতি ব্যবহার করতে পারেন।

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

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

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

public static Entry updatePostTitle(
    GoogleService myService, Entry entryToUpdate, String newTitle)
    throws ServiceException, IOException {
  entryToUpdate.setTitle(new PlainTextConstruct(newTitle));
  URL editUrl = new URL(entryToUpdate.getEditLink().getHref());
  return myService.update(editUrl, entryToUpdate);
}

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

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

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

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

public static void deletePost(
    GoogleService myService, String editLinkHref)
    throws ServiceException, IOException {
  URL deleteUrl = new URL(editLinkHref);
  myService.delete(deleteUrl);
}

মন্তব্য

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

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

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

public static Entry createComment(
    GoogleService myService, String blogID, String postId,
    String commentText)
    throws ServiceException, IOException {
  // Build the comment feed URI
  String commentsFeedUri = "http://www.blogger.com/feeds/" + blogID + "/" + postId + "/comments/default";
  URL feedUrl = new URL(commentsFeedUri);

  // Create a new entry for the comment and submit it to the GoogleService
  Entry myEntry = new Entry();
  myEntry.setContent(new PlainTextConstruct(commentText));
  return myService.insert(feedUrl, myEntry);
}

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

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

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

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

public static void printAllComments(
    GoogleService myService, String blogID, String postId)
    throws ServiceException, IOException {
  // Build comment feed URI and request comments on the specified post
  String commentsFeedUri = "http://www.blogger.com/feeds/" + blogID + "/" + postId + "/comments/default";
  URL feedUrl = new URL(commentsFeedUri);
  Feed resultFeed = myService.getFeed(feedUrl, Feed.class);

  // Display the results
  System.out.println(resultFeed.getTitle().getPlainText());
  for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    Entry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" +
        ((TextContent) entry.getContent()).getContent().getPlainText());
    System.out.println("\t" + entry.getUpdated().toStringRfc822());
  }
  System.out.println();
}

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

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

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

একটি মন্তব্য মুছে ফেলতে, মন্তব্যের সম্পাদনা URLটি আপনার GoogleService অবজেক্টের delete পদ্ধতিতে পাস করুন:

public static void deleteComment(GoogleService myService, String editLinkHref)
    throws ServiceException, IOException {
  URL deleteUrl = new URL(editLinkHref);
  myService.delete(deleteUrl);
}

উপরে ফিরে যান