डेवलपर की गाइड: प्रोटोकॉल

अहम जानकारी: यह इस पेज का पुराना वर्शन है. नए वर्शन के लिए, बाईं ओर मौजूद नेविगेशन बार में दिए गए लिंक का इस्तेमाल करें.

Blogger Data API की मदद से, क्लाइंट ऐप्लिकेशन, Google Data API फ़ीड के तौर पर Blogger कॉन्टेंट को देख सकते हैं और उसे अपडेट कर सकते हैं.

आपका क्लाइंट ऐप्लिकेशन, Blogger Data API का इस्तेमाल करके नई ब्लॉग पोस्ट बना सकता है. साथ ही, मौजूदा ब्लॉग पोस्ट में बदलाव कर सकता है या उन्हें मिटा सकता है. इसके अलावा, किसी खास शर्त से मैच होने वाली ब्लॉग पोस्ट के लिए क्वेरी भी कर सकता है.

इस दस्तावेज़ में, Blogger Data API की सुविधाओं के बारे में जानकारी दी गई है. साथ ही, इसमें कच्चे एक्सएमएल और एचटीटीपी का इस्तेमाल करके, Data API के बुनियादी इंटरैक्शन के उदाहरण भी दिए गए हैं. इस दस्तावेज़ को पढ़ने के बाद, हो सकता है कि आप क्लाइंट लाइब्रेरी का इस्तेमाल करके, एपीआई के साथ इंटरैक्ट करने के बारे में ज़्यादा जानना चाहें. इसके लिए, डेवलपर गाइड के प्रोग्रामिंग भाषा के हिसाब से बने सेक्शन पढ़ें.

कॉन्टेंट

ऑडियंस

यह दस्तावेज़ उन प्रोग्रामर के लिए है जो ऐसे क्लाइंट ऐप्लिकेशन लिखना चाहते हैं जो एक्सएमएल और एचटीटीपी का इस्तेमाल करके Blogger के साथ इंटरैक्ट कर सकें.

इस दस्तावेज़ में यह माना गया है कि आपको Google Data API प्रोटोकॉल के बारे में सामान्य जानकारी है.

अगर आपने UNIX सिस्टम का इस्तेमाल किया है और आपको कोई कोड लिखे बिना, इस दस्तावेज़ में दिए गए उदाहरणों को आज़माना है, तो आपको UNIX कमांड-लाइन की सुविधाएं curl या wget काम की लग सकती हैं. ज़्यादा जानकारी के लिए, उन सुविधाओं के मैन्युअल पेज देखें.

Blogger Data API के बारे में रेफ़रंस जानकारी के लिए, प्रोटोकॉल रेफ़रंस गाइड देखें.

शुरू करना

Blogger खाता बनाना

टेस्टिंग के लिए, Blogger खाते के लिए साइन अप किया जा सकता है. Blogger, Google खातों का इस्तेमाल करता है. इसलिए, अगर आपके पास पहले से ही Google खाता है, तो आपको कुछ नहीं करना होगा.

Blogger की सेवा की पुष्टि करना

Blogger Data API का इस्तेमाल करके, सार्वजनिक और निजी, दोनों फ़ीड ऐक्सेस किए जा सकते हैं. सार्वजनिक फ़ीड के लिए पुष्टि करने की ज़रूरत नहीं होती. हालांकि, ये फ़ीड रीड-ओनली होते हैं. अगर आपको ब्लॉग में बदलाव करने हैं, तो निजी फ़ीड का अनुरोध करने से पहले, आपके क्लाइंट को पुष्टि करनी होगी. यह पुष्टि करने के लिए, इनमें से किसी एक तरीके का इस्तेमाल कर सकता है: AuthSub प्रॉक्सी ऑथेंटिकेशन या ClientLogin उपयोगकर्ता नाम/पासवर्ड ऑथेंटिकेशन.

Google Data API की मदद से पुष्टि करने के बारे में ज़्यादा जानने के लिए, पुष्टि करने से जुड़ा दस्तावेज़ देखें.

इस दस्तावेज़ के अगले सेक्शन में दिए गए ज़्यादातर सैंपल में यह माना गया है कि आपने पुष्टि करने के लिए सही तरीका अपनाया है.

AuthSub प्रॉक्सी की पुष्टि

AuthSub प्रॉक्सी की पुष्टि करने की सुविधा का इस्तेमाल, वेब ऐप्लिकेशन करते हैं. इन ऐप्लिकेशन को अपने उपयोगकर्ताओं की पुष्टि, Google खातों के लिए करनी होती है. वेबसाइट ऑपरेटर और क्लाइंट कोड के पास, Blogger उपयोगकर्ता के उपयोगकर्ता नाम और पासवर्ड का ऐक्सेस नहीं होता. इसके बजाय, क्लाइंट को खास AuthSub टोकन मिलते हैं. इनकी मदद से, क्लाइंट किसी उपयोगकर्ता की ओर से कार्रवाई कर सकता है. ज़्यादा जानकारी के लिए, AuthSub दस्तावेज़ देखें.

जब कोई उपयोगकर्ता पहली बार आपके ऐप्लिकेशन पर आता है, तब उसकी पुष्टि नहीं की जाती. इस मामले में, आपको कुछ जानकारी और एक लिंक दिखाना होगा. इस लिंक से उपयोगकर्ता को Google के एक पेज पर ले जाया जाएगा. इस पेज पर, उपयोगकर्ता को अपने ब्लॉग को ऐक्सेस करने के अनुरोध की पुष्टि करनी होगी.

AuthSubRequest यूआरएल में ये क्वेरी पैरामीटर शामिल होते हैं:

अगली
उस पेज का यूआरएल जिस पर Google को पुष्टि करने के बाद उपयोगकर्ता को रीडायरेक्ट करना चाहिए.
दायरा
इससे पता चलता है कि ऐप्लिकेशन, Blogger फ़ीड को ऐक्सेस करने के लिए टोकन का अनुरोध कर रहा है. इस्तेमाल की जाने वाली स्कोप स्ट्रिंग http://www.blogger.com/feeds/ है (यह कोड में बदला गया यूआरएल है).
सुरक्षित
इससे पता चलता है कि क्लाइंट, सुरक्षित टोकन का अनुरोध कर रहा है या नहीं.
सत्र
यह बताता है कि लौटाए गए टोकन को, एक से ज़्यादा बार इस्तेमाल किए जा सकने वाले (सेशन) टोकन के लिए बदला जा सकता है या नहीं.

AuthSubRequest यूआरएल कुछ ऐसा दिख सकता है:

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 यूआरएल के next क्वेरी पैरामीटर में बताया है. AuthSub सिस्टम, token क्वेरी पैरामीटर की वैल्यू के तौर पर, उस यूआरएल में पुष्टि करने वाला टोकन जोड़ता है. उदाहरण के लिए:

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

इस टोकन की वैल्यू, एक बार इस्तेमाल होने वाले AuthSub टोकन को दिखाती है. इस उदाहरण में, session=1 तय किया गया था. इसलिए, इस टोकन को AuthSub सेशन टोकन के लिए बदला जा सकता है. इसके लिए, Authorization हेडर में एक बार इस्तेमाल होने वाले टोकन के साथ 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 हेडर भी होता है, जिससे पता चलता है कि टोकन कितने समय तक मान्य रहेगा.

इसके बाद, आपका ऐप्लिकेशन Blogger के साथ होने वाले अगले इंटरैक्शन के Authorization हेडर में, सेशन टोकन की वैल्यू का इस्तेमाल कर सकता है.

यहां एचटीटीपी अनुरोध का एक उदाहरण दिया गया है. इसमें ऐसा टोकन है जो सुरक्षित नहीं है. इसे Blogger को भेजा जा सकता है:

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 की पुष्टि करने की सुविधा का इस्तेमाल करें. जैसे, डेस्कटॉप ऐप्लिकेशन. ClientLogin प्रोसेस का इस्तेमाल करके पुष्टि करने वाले टोकन का अनुरोध करने के लिए, इस यूआरएल पर POST अनुरोध भेजें:

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

POST बॉडी में क्वेरी पैरामीटर का एक सेट होना चाहिए, जो application/x-www-form-urlencoded कॉन्टेंट टाइप का इस्तेमाल करके, एचटीएमएल फ़ॉर्म से पास किए गए पैरामीटर जैसे दिखते हों. ये पैरामीटर ये हैं:

ईमेल
उपयोगकर्ता का ईमेल पता.
Passwd
उपयोगकर्ता का पासवर्ड.
सेवा
Blogger सेवा का नाम blogger है. (सेवा के अन्य नामों के लिए, सेवा के नाम की सूची देखें.)
accountType
Blogger API का इस्तेमाल करते समय, इसे हमेशा GOOGLE पर सेट किया जाना चाहिए. इस पैरामीटर को सेट न करने पर, उन उपयोगकर्ताओं को ऐक्सेस नहीं दिया जाएगा जिनके पास G Suite खाता भी है.
source
आपके क्लाइंट ऐप्लिकेशन की पहचान करता है. यह companyName-applicationName-versionID फ़ॉर्मैट में होना चाहिए. उदाहरणों में exampleCo-exampleApp-1 नाम का इस्तेमाल किया गया है.

पैरामीटर के बारे में ज़्यादा जानकारी के लिए, इंस्टॉल किए गए ऐप्लिकेशन के लिए पुष्टि करने का दस्तावेज़ देखें.

अगर पुष्टि करने का अनुरोध पूरा नहीं हो पाता है, तो सर्वर एचटीटीपी 403 Forbidden स्टेटस कोड दिखाता है.

अगर यह प्रोसेस पूरी हो जाती है, तो सर्वर एचटीटीपी 200 OK स्टेटस कोड के साथ-साथ, रिस्पॉन्स के मुख्य हिस्से में तीन लंबे अल्फ़ान्यूमेरिक कोड दिखाता है: SID, LSID, और Auth. पुष्टि करने की वैल्यू, अनुमति देने वाला टोकन होता है. इसे आपको हर अनुरोध के साथ Blogger को भेजना होगा. इसलिए, इस वैल्यू की कॉपी रखें. आपके पास SID और LSID वैल्यू को अनदेखा करने का विकल्प है.

निजी फ़ीड के सभी अनुरोधों के लिए पुष्टि करना ज़रूरी है. इसलिए, आपको Blogger के साथ होने वाले सभी इंटरैक्शन में, अनुमति वाला हेडर सेट करना होगा. इसके लिए, यह फ़ॉर्मैट इस्तेमाल करें:

Authorization: GoogleLogin auth=yourAuthToken

यहां yourAuthToken, ClientLogin अनुरोध से मिली पुष्टि करने वाली स्ट्रिंग है.

ClientLogin की पुष्टि करने के बारे में ज़्यादा जानकारी के लिए, इंस्टॉल किए गए ऐप्लिकेशन के लिए पुष्टि से जुड़ा दस्तावेज़ देखें. इसमें, अनुरोध और जवाब के सैंपल भी शामिल हैं.

ध्यान दें: किसी सेशन में सभी अनुरोधों के लिए एक ही टोकन का इस्तेमाल करें. हर Blogger अनुरोध के लिए नया टोकन न लें.

ध्यान दें: ClientLogin दस्तावेज़ में बताए गए तरीके के मुताबिक, पुष्टि करने का अनुरोध पूरा न हो पाए और सीएपीटीCHA चुनौती का अनुरोध किया जाए. अगर आपको Google से कैप्चा चुनौती जारी करने और उसे मैनेज करने की अनुमति देनी है, तो उपयोगकर्ता को https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger पर भेजें. ऐसा करने के लिए, ClientLogin दस्तावेज़ में दिए गए कैप्चा मैनेज करने वाले यूआरएल का इस्तेमाल न करें.

ब्लॉग की सूची वापस लाना

Blogger Data API एक ऐसा फ़ीड उपलब्ध कराता है जिसमें किसी उपयोगकर्ता के ब्लॉग की सूची होती है. इस फ़ीड को "मेटाफ़ीड" कहा जाता है.

ब्लॉग की सूची पाने के लिए, यहां दिए गए यूआरएल पर एचटीटीपी GET भेजें:

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

ध्यान दें: यूज़र आईडी के लिए default का इस्तेमाल भी किया जा सकता है. इससे Blogger को उस उपयोगकर्ता के ब्लॉग की सूची दिखाने के लिए कहा जाता है जिसके क्रेडेंशियल अनुरोध के साथ दिए गए हैं.

मेटाफ़ीड में कोई एंट्री कुछ इस तरह दिख सकती है:

<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 प्रोटोकॉल रेफ़रंस दस्तावेज़ या ऐटम 1.0 स्पेसिफ़िकेशन देखें.

अगर किसी वजह से आपका अनुरोध पूरा नहीं हो पाता है, तो हो सकता है कि Blogger कोई दूसरा स्टेटस कोड दिखाए. एचटीटीपी स्टेटस कोड के बारे में ज़्यादा जानकारी, Google Data APIs प्रोटोकॉल रेफ़रंस दस्तावेज़ में भी उपलब्ध है.

पोस्ट बनाना

Blogger Data API की मदद से, नई ब्लॉग एंट्री बनाई और पब्लिश की जा सकती हैं. साथ ही, एंट्री के ड्राफ़्ट भी बनाए जा सकते हैं.

ब्लॉग पोस्ट पब्लिश करना

पुष्टि करने के बाद, नई ब्लॉग एंट्री पब्लिश की जा सकती हैं.

सबसे पहले, पब्लिश करने के लिए पोस्ट का एक्सएमएल वर्शन बनाएं. यह एक्सएमएल, ऐटम <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>

ध्यान दें: फ़िलहाल, पोस्ट के लिए कस्टम लेखक सेट करने की सुविधा उपलब्ध नहीं है. सभी नई पोस्ट, इस तरह दिखेंगी जैसे उन्हें पुष्टि किए गए मौजूदा उपयोगकर्ता ने बनाया हो.

इस एंट्री को पब्लिश करने के लिए, इसे ब्लॉग पोस्ट के यूआरएल पर इस तरह भेजें. सबसे पहले, application/atom+xml कॉन्टेंट टाइप का इस्तेमाल करके, अपने नए POST अनुरोध के मुख्य हिस्से में Atom <entry> एलिमेंट डालें. इसके बाद, मेटाफ़ीड में ब्लॉग पोस्ट का यूआरएल ढूंढें. इसके लिए, <link> एलिमेंट ढूंढें, जहां rel एट्रिब्यूट का आखिरी हिस्सा #post है. ब्लॉग पोस्ट का यूआरएल, इस एलिमेंट के href एट्रिब्यूट के तौर पर दिया जाता है. यह यूआरएल इस फ़ॉर्मैट में होता है:

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

ध्यान दें: यह यूआरएल, <link rel="service.post"> टैग में मौजूद यूआरएल से मेल खाता है. यह यूआरएल, ब्लॉग के ऐसे वर्शन के <head> सेक्शन में दिखता है जिसे लोग पढ़ सकते हैं.

Blogger, आपकी भेजी गई एंट्री का इस्तेमाल करके एक ब्लॉग पोस्ट बनाता है. इसके बाद, वह <entry> एलिमेंट के तौर पर नई पोस्ट की कॉपी के साथ-साथ एचटीटीपी 201 CREATED स्टेटस कोड दिखाता है. आपको जो एंट्री दिखेगी वह वही होगी जो आपने भेजी थी. हालांकि, इसमें Blogger के जोड़े गए कई एलिमेंट भी शामिल होंगे. जैसे, <id> एलिमेंट.

अगर किसी वजह से आपका अनुरोध पूरा नहीं हो पाता है, तो हो सकता है कि Blogger कोई दूसरा स्टेटस कोड दिखाए. स्टेटस कोड के बारे में जानकारी के लिए, 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 स्ट्रिंग होना चाहिए.

किसी मौजूदा ड्राफ़्ट ब्लॉग पोस्ट को पब्लिश की गई पोस्ट में बदला जा सकता है. इसके लिए, ड्राफ़्ट पोस्ट को फिर से पाएं, <app:draft> एलिमेंट के डेटा को स्ट्रिंग no पर सेट करें, और फिर पोस्ट को अपडेट करें. पोस्ट वापस पाने और अपडेट करने के बारे में अगले दो सेक्शन में बताया गया है.

ध्यान दें: <app:control> और <app:draft> नेमस्पेस के साथ-साथ, Atom पब्लिशिंग प्रोटोकॉल के बारे में ज़्यादा जानकारी के लिए, आरएफ़सी 5023 देखें.

पोस्ट वापस लाना

इन सेक्शन में, क्वेरी पैरामीटर के साथ और बिना क्वेरी पैरामीटर के, ब्लॉग पोस्ट की सूची पाने का तरीका बताया गया है.

पुष्टि किए बिना, Blogger के सार्वजनिक फ़ीड से क्वेरी की जा सकती है. इसलिए, किसी सार्वजनिक ब्लॉग से ब्लॉग पोस्ट पाने के लिए, आपको अनुमति पैरामीटर सेट करने की ज़रूरत नहीं है.

सभी ब्लॉग पोस्ट वापस लाना

उपयोगकर्ता की पोस्ट वापस पाने के लिए, ब्लॉग के फ़ीड यूआरएल पर एचटीटीपी GET अनुरोध भेजें. इसके बाद, Blogger आपको एक फ़ीड दिखाता है, जिसमें सही ब्लॉग एंट्री होती हैं. उदाहरण के लिए, liz@gmail.com के लिए ब्लॉग पोस्ट की सूची पाने के लिए, Blogger को यह एचटीटीपी अनुरोध भेजें. इसमें blogID की जगह सही वैल्यू डालना न भूलें:

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

इसके बाद, Blogger एक एचटीटीपी 200 OK स्टेटस कोड और स्टैंडर्ड Atom 1.0 फ़ीड दिखाता है. इसमें ब्लॉग पोस्ट शामिल होती हैं.

यहां सिर्फ़ एक पोस्ट वाले ब्लॉग के फ़ीड का उदाहरण दिया गया है. ध्यान दें कि हमने इस उदाहरण में थोड़ा बदलाव किया है, ताकि इसे पढ़ने में लोगों को आसानी हो. खास तौर पर, किसी असली Blogger फ़ीड में असल आईडी और यूआरएल होते हैं.

<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>

क्वेरी पैरामीटर का इस्तेमाल करके पोस्ट हासिल करना

Blogger Data API की मदद से, तय की गई शर्तों से मैच करने वाली एंट्री के सेट का अनुरोध किया जा सकता है. जैसे, किसी तारीख की सीमा में पब्लिश या अपडेट की गई ब्लॉग पोस्ट का अनुरोध करना.

उदाहरण के लिए, तारीख की सीमा की क्वेरी भेजने के लिए, अनुरोध यूआरएल में published-min और published-max पैरामीटर जोड़ें. 16 मार्च, 2008 से 24 मार्च, 2008 के बीच बनाई गई सभी ब्लॉग एंट्री पाने के लिए, ब्लॉग के फ़ीड यूआरएल पर 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 अनुरोध भेजने पर, Blogger एक एचटीटीपी 200 OK स्टेटस कोड और एक फ़ीड दिखाता है. इस फ़ीड में, आपकी बताई गई तारीख की सीमा में बनाई गई ब्लॉग पोस्ट शामिल होती हैं.

updated-min और updated-max पैरामीटर का इस्तेमाल, किसी तय सीमा में अपडेट की गई सभी ब्लॉग एंट्री पाने के लिए भी किया जा सकता है. हालांकि, ध्यान दें कि जब तक orderby पैरामीटर को भी updated पर सेट नहीं किया जाता, तब तक इन पैरामीटर को अनदेखा किया जाता है.

Blogger Data API में ये क्वेरी पैरामीटर काम करते हैं:

alt
दिखाया जाने वाला फ़ीड टाइप, जैसे कि atom (डिफ़ॉल्ट) या rss.
/category
फ़ीड के नतीजों को फ़िल्टर करने के लिए, कैटगरी (इन्हें लेबल भी कहा जाता है) तय करता है. उदाहरण के लिए, http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie से, Fritz और Laurie, दोनों लेबल वाली एंट्री मिलती हैं.
max-results
ज़्यादा से ज़्यादा कितनी एंट्री दिखानी हैं.
orderby
एंट्री को दिखाने का क्रम, जैसे कि lastmodified (डिफ़ॉल्ट), starttime या updated.
published-min, published-max
प्रवेश के पब्लिकेशन की तारीखों की सीमाएं.
start-index
पेजिंग के लिए, खोजे गए पहले नतीजे का इंडेक्स, जो 1 से शुरू होता है.
updated-min, updated-max
डेटा अपडेट करने की तारीखों की सीमा. जब तक orderby पैरामीटर को updated पर सेट नहीं किया जाता, तब तक इन क्वेरी पैरामीटर को अनदेखा किया जाता है.

क्वेरी पैरामीटर के बारे में ज़्यादा जानने के लिए, Blogger Data API रेफ़रंस गाइड और Google Data API रेफ़रंस गाइड देखें.

पोस्ट अपडेट करना

किसी मौजूदा ब्लॉग पोस्ट को अपडेट करने के लिए, सबसे पहले वह एंट्री पाएं जिसे अपडेट करना है. इसके बाद, उसमें बदलाव करें. इसके बाद, पोस्ट के बदलाव करने के यूआरएल पर, मैसेज के मुख्य हिस्से में अपडेट की गई एंट्री के साथ PUT अनुरोध भेजें. पक्का करें कि आपने PUT जो एंट्री डाली है उसमें <id> की वैल्यू, मौजूदा एंट्री के <id> से पूरी तरह मैच करती हो.

बदलाव करने के लिए यूआरएल, इस एंट्री में हाइलाइट किया गया है:

<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 करते समय, Blogger से एंट्री को वापस लाने के समय मौजूद सभी एक्सएमएल को सुरक्षित रखा जाए. ऐसा न करने पर, जब हम नए आइटम लागू करेंगे और फ़ीड में <new-awesome-feature> एलिमेंट शामिल करेंगे, तो आपका क्लाइंट उन्हें वापस नहीं भेजेगा और आपके उपयोगकर्ताओं को ये आइटम नहीं दिखेंगे. Google Data API की क्लाइंट लाइब्रेरी, इस प्रोसेस को सही तरीके से मैनेज करती हैं. इसलिए, अगर इनमें से किसी लाइब्रेरी का इस्तेमाल किया जा रहा है, तो आपको कुछ करने की ज़रूरत नहीं है.

ध्यान दें: फ़िलहाल, पोस्ट से जुड़े लेखक के डेटा में बदलाव नहीं किया जा सकता.

समस्या हल करने के लिए सलाह: कुछ फ़ायरवॉल, एचटीटीपी PUT मैसेज को ब्लॉक करते हैं. इस समस्या से बचने के लिए, POST अनुरोध में X-HTTP-Method-Override: PUT हेडर शामिल किया जा सकता है. ज़्यादा जानकारी के लिए, Google Data API प्रोटोकॉल के बुनियादी सिद्धांत वाला दस्तावेज़ देखें.

पोस्ट मिटाना

किसी पोस्ट को मिटाने के लिए, पोस्ट के बदलाव करने वाले यूआरएल पर DELETE अनुरोध भेजें. यह वही यूआरएल है जिसका इस्तेमाल पोस्ट अपडेट करने के लिए किया जाता है.

समस्या हल करने के लिए सलाह: कुछ फ़ायरवॉल, एचटीटीपी DELETE मैसेज को ब्लॉक करते हैं. इस समस्या से बचने के लिए, POST अनुरोध में X-HTTP-Method-Override: DELETE हेडर शामिल किया जा सकता है. ज़्यादा जानकारी के लिए, Google Data API प्रोटोकॉल के बुनियादी सिद्धांत वाला दस्तावेज़ देखें.

टिप्पणियां

Blogger Data 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 कॉन्टेंट टाइप का इस्तेमाल करके, अपने Atom <entry> एलिमेंट को नए POST अनुरोध के मुख्य हिस्से में डालें. इसके बाद, सही Blogger यूआरएल पर POST अनुरोध भेजें:

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

ध्यान दें: फ़िलहाल, सिर्फ़ उस ब्लॉग पर टिप्पणी की जा सकती है जिसका मालिकाना हक पुष्टि किए गए उपयोगकर्ता के पास है.

ध्यान दें: फ़िलहाल, टिप्पणियों के लिए कस्टम लेखक सेट करने की सुविधा उपलब्ध नहीं है. सभी नई टिप्पणियां, इस तरह दिखेंगी जैसे कि उन्हें पुष्टि किए गए मौजूदा उपयोगकर्ता ने बनाया हो.

टिप्पणियां वापस लाना

किसी पोस्ट की टिप्पणियां पाने के लिए, इस पोस्ट के टिप्पणियों वाले फ़ीड के यूआरएल पर GET भेजें:

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

इसके अलावा, ब्लॉग के टिप्पणियों वाले फ़ीड के यूआरएल का इस्तेमाल करके, सभी पोस्ट की टिप्पणियां देखी जा सकती हैं:

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>

टिप्पणियां मिटाना

किसी टिप्पणी को मिटाने के लिए, टिप्पणी में बदलाव करने के यूआरएल पर DELETE अनुरोध भेजें. यह यूआरएल, ऊपर दिए गए टिप्पणियों के फ़ीड में हाइलाइट किया गया है.

एक्सपोर्ट फ़ॉर्मैट

Blogger, उपयोगकर्ताओं को Blogger एक्सपोर्ट फ़ाइल का इस्तेमाल करके, अपने ब्लॉग एक्सपोर्ट और इंपोर्ट करने की सुविधा देता है. इस एक्सपोर्ट फ़ाइल में, एक ब्लॉग की सभी पोस्ट और टिप्पणियां शामिल होती हैं. एक्सपोर्ट की गई फ़ाइल का फ़ॉर्मैट, वही Atom फ़ॉर्मैट होता है जिसके बारे में पोस्ट और टिप्पणियों को वापस पाने के सेक्शन में बताया गया है. इस एक्सपोर्ट फ़ाइल में, एक ही दस्तावेज़ में पोस्ट फ़ीड और टिप्पणियों के फ़ीड का कॉन्टेंट शामिल होगा.

एक्सपोर्ट फ़ॉर्मैट का इस्तेमाल करके, ब्लॉग डेटा को एक्सपोर्ट या इंपोर्ट करने के लिए, ब्लॉग के सेटिंग पेज पर जाएं. Data API का इस्तेमाल करके, किसी ब्लॉग की एक्सपोर्ट फ़ाइल वापस पाने के लिए, इस यूआरएल का इस्तेमाल करें:

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

एक्सपोर्ट की गई फ़ाइल को इंपोर्ट करने के लिए, यहां दिए गए यूआरएल पर POST अनुरोध करें. अनुरोध के डेटा के तौर पर, एक्सपोर्ट की गई फ़ाइल का कॉन्टेंट और कॉन्टेंट टाइप के तौर पर application/atom+xml डालें:

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

ऊपर दिए गए यूआरएल में, क्वेरी पैरामीटर काम नहीं करते. दोनों अनुरोधों में पुष्टि की जानकारी भी होनी चाहिए. साथ ही, सिर्फ़ ब्लॉग एडमिन इन फ़ीड यूआरएल का इस्तेमाल करके, ब्लॉग को इंपोर्ट/एक्सपोर्ट कर पाएंगे.

ध्यान दें: अगर आपने Blogger से अपनी एक्सपोर्ट फ़ाइल बनाई है, तो फ़िलहाल पोस्ट और टिप्पणी की एंट्री के क्रम से जुड़ी एक पाबंदी है. Blogger एक्सपोर्ट फ़ाइल में सबसे पहले सभी पोस्ट और फिर सभी टिप्पणियां दिखेंगी. पोस्ट और टिप्पणी की एंट्री को एक-दूसरे के बीच में डालने की अनुमति तब तक है, जब तक टिप्पणी की एंट्री उस पोस्ट के बाद आती है जिस पर टिप्पणी की गई है.

एक्सपोर्ट फ़ाइल में Blogger, एटम फ़ॉर्मैट का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानने के लिए, प्रोटोकॉल रेफ़रंस गाइड देखें.

वापस सबसे ऊपर जाएं