বিকাশকারীর গাইড: পাইথন

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

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

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

বিষয়বস্তু

  1. শ্রোতা
  2. শুরু হচ্ছে
    1. একটি ব্লগার অ্যাকাউন্ট তৈরি করা
    2. নমুনা কোড চলমান
  3. ব্লগার পরিষেবাতে প্রমাণীকরণ করা হচ্ছে
    1. OAuth প্রমাণীকরণ
    2. AuthSub প্রক্সি প্রমাণীকরণ
    3. ক্লায়েন্টলগইন ব্যবহারকারীর নাম/পাসওয়ার্ড প্রমাণীকরণ
  4. ব্লগের একটি তালিকা পুনরুদ্ধার করা হচ্ছে
  5. পোস্ট তৈরি করা হচ্ছে
    1. একটি ব্লগ পোস্ট প্রকাশ
    2. একটি খসড়া ব্লগ পোস্ট তৈরি করা হচ্ছে
  6. পোস্ট পুনরুদ্ধার করা হচ্ছে
    1. সমস্ত ব্লগ পোস্ট পুনরুদ্ধার করা হচ্ছে
    2. ক্যোয়ারী প্যারামিটার ব্যবহার করে পোস্ট পুনরুদ্ধার করা হচ্ছে
  7. পোস্ট আপডেট করা হচ্ছে
  8. পোস্ট মুছে ফেলা হচ্ছে
  9. মন্তব্য
    1. মন্তব্য তৈরি করা হচ্ছে
    2. মন্তব্য পুনরুদ্ধার করা হচ্ছে
    3. মন্তব্য মুছে ফেলা হচ্ছে

শ্রোতা

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

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

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

শুরু হচ্ছে

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

Python ক্লায়েন্ট লাইব্রেরির জন্য Python 2.2 বা নতুন প্রয়োজন। ক্লায়েন্ট লাইব্রেরি ডাউনলোড করার পরে, আপনাকে ElementTree প্যাকেজ ডাউনলোড এবং ইনস্টল করতে হবে।

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

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

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

এই নথিতে দেখানো সমস্ত নমুনা কোড সহ একটি সম্পূর্ণ কর্মক্ষম নমুনা ক্লায়েন্ট, gdata-python-client/samples/blogger/ ডিরেক্টরির অধীনে BloggerExample.py ফাইলে উপলব্ধ।

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

আপনি নিম্নলিখিত আর্গুমেন্ট সহ নমুনা চালাতে পারেন:

python BloggerExample.py --email [email_address] --password [password]

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

from gdata import service
import gdata
import atom

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

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

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

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

OAuth প্রমাণীকরণ

Python GData লাইব্রেরি ব্যবহার করে OAuth প্রমাণীকরণ সম্পর্কে ডকুমেন্টেশনের জন্য, অনুগ্রহ করে Google ডেটা প্রোটোকল ক্লায়েন্ট লাইব্রেরিতে OAuth দেখুন।

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

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

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

def GetAuthSubUrl():
  next = 'http://www.example.com/welcome.pyc'
  scope = 'http://www.blogger.com/feeds/'
  secure = False
  session = True
  blogger_service = service.GDataService()
  return blogger_service.GenerateAuthSubURL(next, scope, secure, session);

authSubUrl = GetAuthSubUrl();
print '<a href="%s">Login to your Google account</a>' % authSubUrl

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

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

উপরের উদাহরণটি এমন একটি কল দেখায় যা একটি secure টোকেনের অনুরোধ করে না (secured এর মান হল 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.pyc

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

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

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

URL থেকে টোকেন মান পুনরুদ্ধার করার বিভিন্ন উপায় আছে; উদাহরণ স্বরূপ:

import cgi

parameters = cgi.FieldStorage()
authsub_token = parameters['token']

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

blogger_service = service.GDataService()
blogger_service.auth_token = authsub_token
blogger_service.UpgradeToSessionToken()

অর্থাৎ, আপনি UpgradeToSessionToken পদ্ধতিতে আপনার একবার-ব্যবহারের টোকেন পাস করেন এবং AuthSub ইন্টারফেস একটি সেশন টোকেন প্রদান করে।

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

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

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

blogger_service = service.GDataService('user@example.com', 'secretPassword')
blogger_service.source = 'exampleCo-exampleApp-1.0'
blogger_service.service = 'blogger'
blogger_service.account_type = 'GOOGLE'
blogger_service.server = 'www.blogger.com'
blogger_service.ProgrammaticLogin()

উপরের স্নিপেটে, আমরা GDataService উদাহরণে তিনটি বৈশিষ্ট্য সেট করেছি। companyName নাম - applicationName নাম - versionID ফর্মে প্রথমটি আমাদের আবেদনের নাম। দ্বিতীয়টি হল পরিষেবাটির নাম যার সাথে আমরা যোগাযোগ করতে চাই; তৃতীয়টি হল সার্ভারের ঠিকানা।

লক্ষ্য করুন যে account_type স্পষ্টভাবে GOOGLE এ সেট করা আছে। এই প্যারামিটার সেট করতে ব্যর্থ হলে G Suite ব্যবহারকারীরা সফলভাবে Blogger API ব্যবহার করতে পারবেন না।

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

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

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

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

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

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

def PrintUserBlogTitles(blogger_service):
  query = service.Query()
  query.feed = '/feeds/default/blogs'
  feed = blogger_service.Get(query.ToUri())

  print feed.title.text
  for entry in feed.entry:
    print "\t" + entry.title.text

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

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

blog_id = feed.entry[0].GetSelfLink().href.split("/")[-1]

BloggerExample.py নমুনায়, একটি BloggerExample ক্লাস তৈরি করা হয় এবং পরবর্তীতে সহজে অ্যাক্সেসের জন্য কনস্ট্রাক্টরে ব্লগ আইডি সেট করা হয়। এই নথিতে নিম্নলিখিত উদাহরণগুলির বেশিরভাগের জন্য, blog_id একটি পরিবর্তনশীল হিসাবে পাস করা হয়েছে৷

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

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

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

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

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

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

def CreatePublicPost(blogger_service, blog_id, title, content):
  entry = gdata.GDataEntry()
  entry.title = atom.Title('xhtml', title)
  entry.content = atom.Content(content_type='html', text=content)
  return blogger_service.Post(entry, '/feeds/%s/posts/default' % blog_id)

blogEntry = CreatePublicPost(blogger_service, blog_id,
    title='I have the answer', content='Eureka! It is 42!')

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

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

def CreateDraftPost(blogger_service, blog_id, title, content):
  entry = gdata.GDataEntry()
  entry.title = atom.Title('xhtml', title)
  entry.content = atom.Content(content_type='html', text=content)

  control = atom.Control()
  control.draft = atom.Draft(text='yes')
  entry.control = control

  return blogger_service.Post(entry, '/feeds/%s/posts/default' % blog_id)

draftEntry = CreateDraftPost(blogger_service, blog_id,
    title='I have the question',
    content='What do you get if you multiply six by nine?')

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

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

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

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

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

ব্যবহারকারীর পোস্টগুলি পুনরুদ্ধার করতে, ব্লগ-পোস্ট ফিড URL সহ GetFeed পদ্ধতিতে কল করুন:

def PrintAllPosts(blogger_service, blog_id):
  feed = blogger_service.GetFeed('/feeds/' + blog_id + '/posts/default')

  print feed.title.text
  for entry in feed.entry:
    print "\t" + entry.title.text
    print "\t" + entry.content.text
    print "\t" + entry.updated.text
  print

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

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

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

def PrintPostsInDateRange(blogger_service, blog_id, start_time='2007-04-01', end_time='2007-04-25'):
  query = service.Query()
  query.feed = '/feeds/' + blog_id + '/posts/default'
  query.published_min = start_time
  query.published_max = end_time
  feed = blogger_service.Get(query.ToUri())

  print feed.title.text + " posts between " + start_time + " and " + end_time
  for entry in feed.entry:
    print "\t" + entry.title.text
    print "\t" + entry.content.text
    print "\t" + entry.updated.text
  print

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

ব্লগার ডেটা API নিম্নলিখিত Query বৈশিষ্ট্য সমর্থন করে:

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

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

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

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

def UpdatePostTitle(blogger_service, entry_to_update, new_title='The REAL answer'):
  entry_to_update.title = atom.Title('xhtml', new_title)
  return blogger_service.Put(entry_to_update, entry_to_update.GetEditLink().href)

উপরের কোডটি একটি GDataEntry করে যাতে সম্পূর্ণ নতুন আপডেট করা পোস্ট রয়েছে। অন্য কোনো বৈশিষ্ট্য আপডেট করতে, Put কে কল করার আগে GDataEntry ইনস্ট্যান্সে সেট করুন।

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

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

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

def DeletePost(blogger_service, edit_link_href):
  blogger_service.Delete(edit_link_href)

মন্তব্য

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

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

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

def CreateComment(blogger_service, blog_id, post_id, comment_text='Mostly harmless'):
  feed_uri = '/feeds/' + blog_id + '/' + post_id + '/comments/default'

  entry = gdata.GDataEntry()
  entry.content = atom.Content(content_type='xhtml', text=comment_text)
  return blogger_service.Post(entry, feed_uri)

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

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

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

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

def PrintAllComments(blogger_service, blog_id, post_id):
  feed_url = '/feeds/' + blog_id + '/' + post_id + '/comments/default'
  feed = blogger_service.Get(feed_url)

  print feed.title.text
  for entry in feed.entry:
    print "\t" + entry.title.text
    print "\t" + entry.updated.text
  print 

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

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

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

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

def DeleteComment(blogger_service, post_id, comment_id):
  feed_url = '/feeds/' + post_id + '/comments/default/' + comment_id
  blogger_service.Delete(feed_url)

উপরে ফিরে যাও