डेवलपर की गाइड: .NET

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

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

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

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

विषय सूची

दर्शक

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

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

क्लाइंट लाइब्रेरी से मिलने वाली क्लास और तरीकों के बारे में जानकारी पाने के लिए, .NET क्लाइंट लाइब्रेरी एपीआई का रेफ़रंस देखें. Blogger के Data API से जुड़ी सामान्य जानकारी के लिए, प्रोटोकॉल के बारे में जानकारी देने वाली गाइड देखें.

प्रारंभ करना

क्लाइंट लाइब्रेरी सेट अप करने में मदद के लिए, शुरुआती निर्देश देखें.

.NET क्लाइंट लाइब्रेरी का इस्तेमाल करने के लिए, आपको .NET 1.1 रनटाइम की ज़रूरत होगी. साथ ही, सभी पैच का मौजूदा समय भी इस्तेमाल होना ज़रूरी है. क्लाइंट लाइब्रेरी डाउनलोड करने के बाद, डिस्ट्रिब्यूशन की lib/Release सबडायरेक्ट्री में आपको वे डीएलएल दिखेंगे जिन्हें इस्तेमाल करना शुरू करना है.

Blogger खाता बनाना

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

सैंपल कोड चलाना

पूरी तरह से काम करने वाला सैंपल क्लाइंट, जिसमें इस दस्तावेज़ में दिखाए गए सभी सैंपल कोड शामिल हैं, .NET क्लाइंट लाइब्रेरी प्रोजेक्ट में उपलब्ध है. यह सैंपल, एसवीएन डेटा स्टोर करने की जगह के सोर्स टैब में मौजूद /trunk/clients/cs/samples/blogger/ConsoleSample.cs पर मौजूद होता है.

इस सैंपल को कंपाइल और चलाने से पहले, username, password, blogName, और postId की वैल्यू को सही वैल्यू के साथ अपडेट करें. username और password वैल्यू उन क्रेडेंशियल को दिखाती हैं जिनका इस्तेमाल Blogger में लॉग इन करने के लिए किया गया है. blogName वैल्यू, आपके ब्लॉग के ब्लॉग पोस्ट के यूआरएल की शुरुआत होती है.

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

इस दस्तावेज़ में दिए गए उदाहरणों को अपने कोड में इकट्ठा करने के लिए, आपको इन using स्टेटमेंट की ज़रूरत होगी:

using Google.GData.Client;
using System.Net;
using System.Xml;
using System.Text.RegularExpressions;

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

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

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

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

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

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

मान लीजिए कि आपके पेज में नीचे दिया गया एएसपी हाइपरलिंक दिया गया है:

<asp:HyperLink ID="GotoAuthSubLink" runat="server"/>

इसके बाद, अपने ऐप्लिकेशन का AuthSubRequest यूआरएल बनाने के लिए, इस तरह .NET क्लाइंट लाइब्रेरी कॉल करें:

GotoAuthSubLink.Text = "Login to your Google Account";
GotoAuthSubLink.NavigateUrl =
  AuthSubUtil.getRequestUrl("http://www.example.com/RetrieveToken",
  "http://www.blogger.com/feeds/",
  false,
  true);

getRequestUrl वाला तरीका इन पैरामीटर को लेता है (AuthSubRequest हैंडलर के इस्तेमाल किए गए क्वेरी पैरामीटर के मुताबिक):

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

ऊपर दिया गया उदाहरण एक ऐसे कॉल को दिखाता है जो किसी सुरक्षित टोकन (secure की वैल्यू false है) का अनुरोध नहीं करता है. अनुरोध करने का यूआरएल, कुछ ऐसा दिख सकता है:

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%2FRetrieveToken

उपयोगकर्ता, Google की साइट के लिंक पर जाता है और अपने Google खाते की पुष्टि करता है.

उपयोगकर्ता की पुष्टि होने के बाद, AuthSub सिस्टम उसे उस यूआरएल पर रीडायरेक्ट करता है जिसे आपने AuthSubRequest यूआरएल के next क्वेरी पैरामीटर में बताया है. AuthSub सिस्टम उस यूआरएल में token क्वेरी पैरामीटर की वैल्यू के तौर पर पुष्टि करने वाला एक टोकन जोड़ता है. इसलिए, टोकन को एएसपी पेज के Request.QueryString ऑब्जेक्ट में वैरिएबल के तौर पर ऐक्सेस किया जा सकता है. उपयोगकर्ता को एक यूआरएल पर रीडायरेक्ट किया जाता है, जो ऐसा दिखता है:

http://www.example.com/RetrieveToken?token=yourAuthToken

यह टोकन वैल्यू, सिर्फ़ एक बार इस्तेमाल किए जा सकने वाले AuthSub टोकन को दिखाती है. इस उदाहरण में, session = true में बताया गया था, इसलिए इस टोकन को AuthSub सेशन टोकन से इस तरह बदला जा सकता है:

SessionsessionToken = AuthSubUtil.exchangeForSessionToken(Request.QueryStringtoken, null);

इसका मतलब है कि एक बार इस्तेमाल होने वाले टोकन को exchangeForSessionToken तरीके में, null (बिना रजिस्ट्रेशन वाले मोड के लिए) या निजी पासकोड (रजिस्टर किए गए मोड के लिए) के साथ पास किया जाता है. इससे AuthSub इंटरफ़ेस से सेशन टोकन दिखाता है. रजिस्टर किए गए ऐप्लिकेशन और निजी कुंजियों के बारे में ज़्यादा जानकारी के लिए, AuthSub दस्तावेज़ का "हस्ताक्षर करने के अनुरोध" सेक्शन देखें.

इसके बाद, आपका ऐप्लिकेशन, Blogger के साथ होने वाले बाद के इंटरैक्शन में सेशन टोकन की वैल्यू का इस्तेमाल कर सकता है. .NET क्लाइंट लाइब्रेरी को हर अनुरोध के साथ ऑथराइज़ेशन हेडर (जिसमें सेशन टोकन शामिल है) अपने-आप भेजने के लिए कहें, इसके लिए यह तरीका अपनाएं:

GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("blogger", "BloggerSampleApp");
authFactory.Token = SessionsessionToken.ToString();
Service service = new Service(authFactory.ApplicationName);
service.RequestFactory = authFactory;

ClientLogin उपयोगकर्ता नाम/पासवर्ड की पुष्टि करें

अगर आपका क्लाइंट, स्टैंडअलोन और एक उपयोगकर्ता वाला "इंस्टॉल" क्लाइंट (जैसे कि डेस्कटॉप ऐप्लिकेशन) है, तो ClientLogin की पुष्टि करने की सुविधा का इस्तेमाल करें. अपने सर्विस ऑब्जेक्ट के क्रेडेंशियल को इस तरह सेट करें:

Service service = new Service("blogger", "exampleCo-exampleApp-1");
service.Credentials = new GDataCredentials("user@example.com", "secretPassword");
GDataGAuthRequestFactory factory = (GDataGAuthRequestFactory) service.RequestFactory;
factory.AccountType = "GOOGLE";

ऊपर दिए गए स्निपेट में, हम Service कंस्ट्रक्टर को दो पैरामीटर पास करते हैं. पहला पैरामीटर उस सेवा का नाम है जिससे हम इंटरैक्ट करना चाहते हैं. दूसरा पैरामीटर, companyName-applicationName-versionID के फ़ॉर्म में हमारे ऐप्लिकेशन का नाम है. हमने Service.RequestFactory को भी सिर्फ़ GOOGLE खाता टाइप इस्तेमाल करने के लिए सेट किया है, ताकि G Suite का इस्तेमाल करने वाले लोगों को सही तरीके से पुष्टि करने की सुविधा मिल सके.

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

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

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

ब्लॉग की सूची फिर से पाना

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

नीचे दिया गया सैंपल कोड, मेटाफ़ीड को फिर से पाने के लिए, पुष्टि किए गए Service ऑब्जेक्ट का इस्तेमाल करता है. इसके बाद, यह हर ब्लॉग के टाइटल को प्रिंट करता है.

query.Uri = new Uri("http://www.blogger.com/feeds/default/blogs");
AtomFeed feed = null;
try
{
  feed = service.Query(query);
  foreach (AtomEntry entry in feed.Entries)
  {
    Console.WriteLine("Blog Title: " + entry.Title.Text);
  }
}

getFeed तरीके में इस्तेमाल किए गए यूआरएल का इस्तेमाल करें. यह डिफ़ॉल्ट मेटाडेटा यूआरएल है. यह उस उपयोगकर्ता के ब्लॉग की सूची दिखाता है जिसकी पुष्टि हो चुकी है. किसी अन्य उपयोगकर्ता के फ़ीड को ऐक्सेस करने के लिए, मेटाफ़ीड यूआरएल में default की जगह उपयोगकर्ता का आईडी डालें. यूज़र आईडी, अंकों की एक स्ट्रिंग होती है, जो उपयोगकर्ता की प्रोफ़ाइल के यूआरएल के आखिर में मौजूद होती है.

पोस्ट बनाना

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

नीचे दिए गए सभी सैंपल यह मानते हैं कि आपके पास पुष्टि किया गया Service ऑब्जेक्ट है.

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

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

नई ब्लॉग एंट्री पब्लिश करने के लिए, .NET क्लाइंट लाइब्रेरी का इस्तेमाल किया जा सकता है.

सबसे पहले, ब्लॉग पोस्ट को दिखाने के लिए AtomEntry ऑब्जेक्ट बनाएं. इसके बाद, ब्लॉग पोस्ट का टाइटल, कॉन्टेंट, और अन्य एट्रिब्यूट सेट किए जा सकते हैं. आखिर में, पोस्ट डालने के लिए Service ऑब्जेक्ट का इस्तेमाल करें. यहां नई ब्लॉग पोस्ट पब्लिश करने के तरीके का एक उदाहरण दिया गया है:

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = "Marriage!";
newPost.Content = new AtomContent();
newPost.Content.Content = "<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>";
newPost.Content.Type = "xhtml";

Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
AtomEntry createdEntry = service.Insert(blogFeedUri, newPost);

Insert तरीका, सेवा के पोस्ट के यूआरएल को पैरामीटर के तौर पर लेता है. इसके बाद, इस तरीके से वह एंट्री दिखती है जिसे Blogger ने सेव किया था. दिखाई गई एंट्री वही है जो आपने भेजी है. हालांकि, इसमें Blogger की ओर से जोड़े गए कई एलिमेंट भी शामिल होते हैं, जैसे कि पोस्ट आईडी.

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

ब्लॉग पोस्ट का ड्राफ़्ट बना रहे हैं

ड्राफ़्ट पोस्ट भी सार्वजनिक पोस्ट की तरह ही बनाई जाती हैं. हालांकि, आपको AtomEntry ऑब्जेक्ट का draft एट्रिब्यूट सेट करना होगा. हाइलाइट की गई लाइन को जोड़कर, ऊपर दी गई ब्लॉग पोस्ट को ड्राफ़्ट के तौर पर बनाया जा सकता है:

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = "Marriage!";
newPost.Content = new AtomContent();
newPost.Content.Content = "<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>";
newPost.Content.Type = "xhtml";
newPost.IsDraft = true;

Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
AtomEntry createdEntry = service.Insert(blogFeedUri, newPost);

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

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

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

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

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

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

query.Uri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
feed = service.Query(query);
Console.WriteLine(feed.Title.Text);
foreach (AtomEntry entry in feed.Entries)
{
  Console.WriteLine("Entry Title: " + entry.Title.Text);
}

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

Blogger Data API आपको ऐसी एंट्री के सेट का अनुरोध करने देता है जो तय की गई शर्तों से मेल खाती हों. जैसे, तारीख की दी गई सीमा में पब्लिश या अपडेट की गई ब्लॉग पोस्ट के लिए अनुरोध करना. ऐसा करने के लिए, आपको एक FeedQuery ऑब्जेक्ट बनाना होगा और उसे Service.Query() तरीके में पास करना होगा.

उदाहरण के लिए, तारीख की सीमा वाली क्वेरी भेजने के लिए, FeedQuery ऑब्जेक्ट के MinPublication और MaxPublication सदस्यों को सेट करें. नीचे दिया गया कोड स्निपेट दिए गए शुरू होने के समय और खत्म होने के समय के बीच पब्लिश की गई हर ब्लॉग पोस्ट के टाइटल को प्रिंट करता है:

FeedQuery query = new FeedQuery();
query.Uri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
query.MinPublication = new DateTime(2006, 1, 1);
query.MaxPublication = new DateTime(2007, 4, 12);
AtomFeed feed = service.Query(query);
foreach (AtomEntry entry in feed.Entries)
{
  Console.WriteLine("  Entry Title: " + entry.Title.Text);
}

ध्यान दें कि FeedQuery ऑब्जेक्ट को बनाने के लिए, पोस्ट फिर से पाने के लिए इस्तेमाल किए गए पोस्ट फ़ीड के उसी यूआरएल का इस्तेमाल किया गया है.

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 रेफ़रंस गाइड देखें.

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

किसी मौजूदा ब्लॉग पोस्ट को अपडेट करने के लिए, सबसे पहले उस एंट्री को वापस लाएं जिसे आपको अपडेट करना है. इसके बाद, उसमें बदलाव किया जा सकता है और एंट्री के Update() तरीके का इस्तेमाल करके उसे Blogger को भेजा जा सकता है. यह कोड स्निपेट यह मानते हुए कि आपने सर्वर से एंट्री पहले ही ले ली है, ब्लॉग एंट्री के टाइटल में बदलाव करता है.

static AtomEntry EditEntry(AtomEntry toEdit)
{
  // Edit the entry by changing the Title and calling Update().
  if (toEdit != null)
  {
    toEdit.Title.Text = "Marriage Woes!";
    toEdit = toEdit.Update();
  }
  return toEdit;
}

ऊपर दिया गया कोड एक AtomEntry दिखाता है, जिसमें अपडेट की गई पूरी पोस्ट शामिल है. किसी दूसरी प्रॉपर्टी को अपडेट करने के लिए, Update() को कॉल करने से पहले बस उन्हें AtomEntry ऑब्जेक्ट में सेट करें.

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

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

किसी पोस्ट को मिटाने के लिए, किसी मौजूदा AtomEntry ऑब्जेक्ट पर Delete तरीके को कॉल करें, जैसे कि:

static void DeleteEntry(AtomEntry toDelete)
{
  // Delete the edited entry
  if (toDelete != null)
  {
    toDelete.Delete();
  }
}

टिप्पणियां

Blogger डेटा एपीआई की मदद से टिप्पणियां बनाई जा सकती हैं, उन्हें वापस पाया जा सकता है, और मिटाया जा सकता है. टिप्पणियों को अपडेट नहीं किया जा सकता (और न ही यह वेब इंटरफ़ेस में उपलब्ध है).

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

टिप्पणी पोस्ट करने के लिए, AtomEntry ऑब्जेक्ट बनाएं और उसे इस तरह से डालें:

AtomEntry comment;
comment = new AtomEntry();
comment.Title.Text = "This is my first comment";
comment.Content.Content = "This is my first comment";
Uri commentPostUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/" + entryId + "/comments/default");
postedComment = service.Insert(commentPostUri, comment);

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

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

टिप्पणियां वापस लाई जा रही हैं

पोस्ट के टिप्पणियों वाले फ़ीड के यूआरएल से, किसी खास पोस्ट पर की गई टिप्पणियां वापस पाई जा सकती हैं:

static void ListEntryComments(Service service, Uri commentUri)
{
  if (commentUri != null)
  {
    // Retrieve all comments on a blog entry
    FeedQuery query = new FeedQuery();
    query.Uri = commentUri;
    AtomFeed feed = service.Query(query);
    foreach (AtomEntry entry in feed.Entries)
    {
      Console.WriteLine("  Comment Title: " + entry.Title.Text);
    }
  }
}

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

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

टिप्पणियां मिटाई जा रही हैं

कोई टिप्पणी मिटाने के लिए, किसी मौजूदा टिप्पणी AtomEntry ऑब्जेक्ट पर, Delete() तरीके को इस तरह से कॉल करें:

static void DeleteComment(AtomEntry commentEntry)
{
  if (commentEntry != null)
  {
    // Delete the comment.
    commentEntry.Delete();
  }
}

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