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

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

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

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

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

विषय सूची

दर्शक

यह दस्तावेज़ उन प्रोग्रामर के लिए है जो ऐसे क्लाइंट ऐप्लिकेशन लिखना चाहते हैं जो XML और HTTP का उपयोग करके 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 सेशन टोकन से बदला जा सकता है. ऐसा करने के लिए, 'ऑथराइज़ेशन हेडर' में एक बार इस्तेमाल होने वाले टोकन के साथ 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 कॉन्टेंट टाइप का इस्तेमाल करके, एचटीएमएल फ़ॉर्म से पास किए गए पैरामीटर की तरह दिखते हैं. ये पैरामीटर हैं:

ईमेल
उपयोगकर्ता का ईमेल पता.
पासवॉड
उपयोगकर्ता का पासवर्ड.
सेवा
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 दस्तावेज़ में दी गई जानकारी के मुताबिक, पुष्टि करने का अनुरोध पूरा नहीं हो सकता और कैप्चा चैलेंज का अनुरोध किया जा सकता है. अगर आप चाहते हैं कि 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 API प्रोटोकॉल रेफ़रंस दस्तावेज़ या ऐटम 1.0 की खास बातें देखें.

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

पोस्ट बनाना

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 कॉन्टेंट टाइप का इस्तेमाल करके, अपने ऐटम <entry> एलिमेंट को नए POST अनुरोध के मुख्य हिस्से में डालें. इसके बाद, मेटाफ़ीड में ब्लॉग की पोस्ट का यूआरएल ढूंढें. इसके लिए, उस <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 पर सेट करें. इसके बाद, पोस्ट को अपडेट करें. पोस्ट पुनर्प्राप्त करने और अपडेट करने के बारे में अगले दो सेक्शन में बताया गया है.

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

पोस्ट वापस पाई जा रही हैं

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

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

सभी ब्लॉग पोस्ट वापस लाई जा रही हैं

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

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

इसके बाद Blogger, एचटीटीपी 200 OK स्टेटस कोड और ब्लॉग पोस्ट वाला स्टैंडर्ड ऐटम 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 के बीच बनाई गई सभी ब्लॉग एंट्री पाने के लिए, ब्लॉग के फ़ीड यूआरएल पर एक एचटीटीपी अनुरोध भेजें:

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.
प्रकाशित कम से कम, ज़्यादा से ज़्यादा प्रकाशित
पब्लिकेशन की तारीखों की सीमा.
start-index
पेजिंग के लिए, वापस लाए जाने वाले पहले नतीजे का एक आधारित इंडेक्स.
अपडेट किया गया मिनट, अपडेट किया गया ज़्यादा से ज़्यादा
एंट्री अपडेट की तारीखों की सीमा. इन क्वेरी पैरामीटर को तब तक अनदेखा किया जाता है, जब तक 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 डेटा एपीआई की मदद से टिप्पणियां बनाई जा सकती हैं, उन्हें वापस पाया जा सकता है, और मिटाया जा सकता है. टिप्पणियों को अपडेट नहीं किया जा सकता (और न ही यह वेब इंटरफ़ेस में उपलब्ध है).

टिप्पणियां करना

टिप्पणी पोस्ट करने के लिए, ऐसा ऐटम <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>

इस टिप्पणी को पब्लिश करने के लिए, नए POST अनुरोध के मुख्य हिस्से में अपने ऐटम <entry> एलिमेंट को रखें. ऐसा करने के लिए, application/atom+xml कॉन्टेंट टाइप का इस्तेमाल करें. इसके बाद, सही 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 एक्सपोर्ट फ़ाइल का इस्तेमाल करके अपने ब्लॉग को एक्सपोर्ट और इंपोर्ट करने की सुविधा देता है. इस एक्सपोर्ट फ़ाइल में एक ब्लॉग की सभी पोस्ट और टिप्पणियां शामिल हैं. एक्सपोर्ट फ़ाइल का फ़ॉर्मैट वही है जो ऐटम फ़ॉर्मैट है. इस बारे में पोस्ट और टिप्पणियां वापस पाने से जुड़े सेक्शन में बताया गया है. इस एक्सपोर्ट फ़ाइल में, पोस्ट फ़ीड का कॉन्टेंट और टिप्पणियां फ़ीड का कॉन्टेंट, एक दस्तावेज़ में होगा.

एक्सपोर्ट फ़ॉर्मैट का इस्तेमाल करके ब्लॉग के डेटा को एक्सपोर्ट या इंपोर्ट करने के लिए, ब्लॉग के सेटिंग पेज पर जाएं. 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, एक्सपोर्ट फ़ाइल में ऐटम फ़ॉर्मैट का इस्तेमाल कैसे करता है, इसके बारे में ज़्यादा जानने के लिए प्रोटोकॉल रेफ़रंस गाइड देखें.

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