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

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

Blogger डेटा एपीआई, क्लाइंट ऐप्लिकेशन को Google डेटा एपीआई फ़ीड के रूप में Blogger कॉन्टेंट देखने और उसे अपडेट करने की सुविधा देता है.

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

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

कॉन्टेंट

दर्शक

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

इस दस्तावेज़ में यह माना जाता है कि आप Google के डेटा एपीआई प्रोटोकॉल को इस्तेमाल करने के सामान्य आइडिया समझते हैं.

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

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

रिपोर्ट का इस्तेमाल करना

Blogger खाता बनाना

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

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

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

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

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

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 के बाद से यह टोकन दिखाया गया था. ऑथराइज़ेशन हेडर में 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 पुष्टि का इस्तेमाल करें. क्लाइंट लॉग इन मैकेनिज़्म का इस्तेमाल करके, पुष्टि करने वाले टोकन का अनुरोध करने के लिए, इस यूआरएल पर POST अनुरोध भेजें:

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

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

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

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

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

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

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

Authorization: GoogleLogin auth=yourAuthToken

जहां yourAuthToken, ClientLogin अनुरोध से मिली ऑथराइज़ेशन स्ट्रिंग होती है.

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

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

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

ब्लॉग की सूची फ़ेच की जा रही है

Blogger डेटा एपीआई में एक फ़ीड होता है, जो किसी खास उपयोगकर्ता के ब्लॉग की सूची बनाता है; उस फ़ीड को "metafeed.&quot कहा जाता है;

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

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

ध्यान दें: आप User-ID के लिए 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 डेटा एपीआई प्रोटोकॉल रेफ़रंस दस्तावेज़ या ऐटम 1.0 की खास बातें देखें.

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

पोस्ट बनाना

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

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

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

सबसे पहले, प्रकाशित करने के लिए पोस्ट का एक XML प्रतिनिधित्व बनाएं. यह एक्सएमएल ऐटम <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 डेटा एपीआई प्रोटोकॉल संदर्भ दस्तावेज़ देखें.

ड्राफ़्ट ब्लॉग पोस्ट बनाना

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

उदाहरण के लिए, तारीख की सीमा की क्वेरी भेजने के लिए, अनुरोध वाले यूआरएल में 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 डेटा एपीआई में इन क्वेरी पैरामीटर का इस्तेमाल किया जा सकता है:

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

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

पोस्ट अपडेट की जा रही हैं

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

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

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

पोस्ट मिटाना

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

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

टिप्पणियां

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>

इस टिप्पणी को प्रकाशित करने के लिए, अपने ऐटम <entry> एलिमेंट को नए POST अनुरोध के मुख्य हिस्से में लिखें. इसके लिए, application/atom+xml कॉन्टेंट टाइप का इस्तेमाल करें. इसके बाद, POST को सही Blogger यूआरएल पर अनुरोध भेजें:

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

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

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

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

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

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

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

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

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