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

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

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

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

कॉन्टेंट

ऑडियंस

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

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

आपके द्वारा उपलब्ध कराई गई क्लास और विधियों के बारे में क्लाइंट लाइब्रेरी, JavaScript क्लाइंट लाइब्रेरी API देखें रेफ़रंस.

इस दस्तावेज़ को क्रम से पढ़ने के लिए बनाया गया है; हर उदाहरण पिछले उदाहरणों पर आधारित है.

उपयोग की शर्तें

JavaScript क्लाइंट लाइब्रेरी का इस्तेमाल करते समय, आपने Google JavaScript क्लाइंट लाइब्रेरी के इस्तेमाल की शर्तों का पालन करने की सहमति दी है.

साथ काम करने वाले एनवायरमेंट के बारे में जानकारी

फ़िलहाल, हम सिर्फ़ उन JavaScript क्लाइंट ऐप्लिकेशन के साथ काम करते हैं जो ब्राउज़र में वेब पेज पर चलते हैं. फ़िलहाल, यह सुविधा Firefox 1.5 और उसके बाद के वर्शन और Internet Explorer 6.0 और उसके बाद के वर्शन पर काम करती है.

JavaScript क्लाइंट लाइब्रेरी, सेवा के सर्वर. अगर आप एक अनुभवी JS डेवलपर हैं, तो आप सोच रहे होंगे कि "लेकिन समान ऑरिजिन पॉलिसी?" JavaScript क्लाइंट लाइब्रेरी की मदद से, आपका क्लाइंट किसी भी डोमेन से Google Data API के अनुरोध भेज सकता है. साथ ही, यह ब्राउज़र के सुरक्षा मॉडल का पालन करती है.

शुरू करना

कोई JavaScript क्लाइंट ऐप्लिकेशन लिखने से पहले, आपको लाइब्रेरी पाने के लिए कुछ सेटअप करना होगा.

Blogger खाता बनाना

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

लाइब्रेरी का अधिग्रहण करना

क्लाइंट लाइब्रेरी का इस्तेमाल करने से पहले, क्लाइंट को सर्वर से क्लाइंट लाइब्रेरी कोड का अनुरोध करना होगा.

<script> टैग का इस्तेमाल करके, Google AJAX फ़ेच करने के लिए, आपके एचटीएमएल दस्तावेज़ का <head> सेक्शन एपीआई लोडर:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

लोडर को फ़ेच करने के बाद, Google Data API क्लाइंट लाइब्रेरी पाने के लिए, इसका इस्तेमाल करें यह पंक्ति आपके JavaScript सेटअप कोड की निम्न पंक्ति में दिखाई जाएगी, जिसे आपके एचटीएमएल दस्तावेज़ का <head> सेक्शन (या किसी JavaScript से) ऐसी फ़ाइल जिसे<script> आपके एचटीएमएल दस्तावेज़ का <head> सेक्शन):

google.load("gdata", "1.x");

google.load() का दूसरा पैरामीटर, JavaScript क्लाइंट लाइब्रेरी के अनुरोध किए गए वर्शन की संख्या है.  हमारे वर्शन के नंबर तय करने का तरीका, Google Maps API के वर्शन के नंबर तय करने के तरीके पर आधारित है. यहां वर्शन के संभावित नंबर और उनका मतलब बताया गया है:

"1"
मेज़र वर्शन 1 का दूसरा से आखिरी वर्शन.
"1.x"
मेजर वर्शन 1 का नया वर्शन.
"1.s"
मेजर वर्शन 1 का नया स्टेबल रिविज़न. हम कभी-कभी क्लाइंट लाइब्रेरी के कुछ वर्शन को "स्टेबल" यह फ़ैसला, डेवलपर से मिले सुझाव, राय या शिकायत के आधार पर भेजा जाता है. हालांकि, ऐसा हो सकता है कि उस वर्शन में नई सुविधाएं न हों.
"1.0", "1.1" वगैरह
लाइब्रेरी का कोई खास वर्शन, जिसमें एक बड़ा और छोटा सा रिविज़न नंबर हो.

google.load() को कॉल करने के बाद, आपको लोड करने वाले व्यक्ति को कहना होगा कि वह पेज लोड होने तक इंतज़ार करे और फिर अपने कोड को कॉल करें:

google.setOnLoadCallback(getMyBlogFeed);

यहां getMyBlogFeed() एक फ़ंक्शन है, जिसे हम इस दस्तावेज़ के अगले सेक्शन में बताएंगे. <body> एलिमेंट से जुड़ा onload हैंडलर इस्तेमाल करने के बजाय, इस तरीके का इस्तेमाल करें.

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

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

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

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

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

वेब-आधारित JavaScript क्लाइंट के लिए पुष्टि की प्रोसेस के दौरान क्या होता है, इसकी खास जानकारी यहां दी गई है:

  1. क्लाइंट ऐप्लिकेशन, google.accounts.user.login() को कॉल करता है का तरीका इस्तेमाल करके, उसे "स्कोप" में पास किया जा सकता है वैल्यू जिससे पता चलता है कि किस Google सेवा का इस्तेमाल करना है. Blogger के लिए, इसका दायरा "http://www.blogger.com/feeds/".
  2. क्लाइंट लाइब्रेरी, ब्राउज़र को Google के "ऐक्सेस का अनुरोध" पेज पर भेजती है. यहां उपयोगकर्ता, सेवा में लॉग इन करने के लिए अपने क्रेडेंशियल डाल सकता है.
  3. अगर उपयोगकर्ता लॉग इन कर लेता है, तो AuthSub सिस्टम, पुष्टि करने वाले टोकन के साथ ब्राउज़र को वेब क्लाइंट के यूआरएल पर वापस भेजता है.
  4. JavaScript क्लाइंट लाइब्रेरी, टोकन को कुकी में सेव करती है और नतीजे दिखाती है को कंट्रोल करना चाहते हैं, जिसे google.accounts.user.login().
  5. जब क्लाइंट ऐप्लिकेशन बाद में क्लाइंट लाइब्रेरी के उन तरीकों को कॉल करता है जिनमें जब क्लाइंट, Blogger से इंटरैक्ट करता है, तो क्लाइंट लाइब्रेरी टोकन को अपने-आप सभी अनुरोध शामिल हैं.

ध्यान दें: JavaScript क्लाइंट लाइब्रेरी, वेब ब्राउज़र में पुष्टि किए गए Blogger अनुरोध करने के लिए, आपके पेज पर ऐसी इमेज होनी चाहिए जो आपके पेज के डोमेन पर होस्ट की गई हो. यह कोई भी इमेज हो सकती है. यहां तक कि एक पिक्सल वाली पारदर्शी इमेज भी हो सकती है. हालांकि, पेज पर कोई इमेज ज़रूर होनी चाहिए. अगर आपको इमेज को अपने पेज पर नहीं दिखाना है, तो इमेज को रेंडरिंग एरिया के बाहर रखने के लिए, <img> टैग के style एट्रिब्यूट का इस्तेमाल किया जा सकता है. उदाहरण के लिए: style="position:absolute; top: -1000px;"

यह क्लाइंट ऐप्लिकेशन कोड है, जो लॉग इन को मैनेज करता है. हम दूसरे कोड से बाद में setupMyService() फ़ंक्शन.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

सलाह: हमारा सुझाव है कि आप उपयोगकर्ता को लॉगिन शुरू करने के लिए कहने के लिए, लॉगिन बटन या अन्य उपयोगकर्ता इनपुट तरीका मैन्युअल रूप से संसाधित करें. इसके बजाय, अगर उपयोगकर्ता के इंटरैक्शन का इंतज़ार किए बिना, पेज लोड होने के तुरंत बाद google.accounts.user.login() को कॉल किया जाता है, तो उपयोगकर्ता को आपके पेज पर आने पर सबसे पहले Google लॉगिन पेज दिखता है. अगर उपयोगकर्ता लॉग इन नहीं करता है, तो Google उन्हें वापस आपके पेज पर नहीं भेजता; तो उपयोगकर्ता के नज़रिए से, वे ने आपके पृष्ठ पर जाने का प्रयास किया लेकिन उन्हें बाहर भेज दिया गया और कभी वापस नहीं भेजा गया. यह स्थिति उपयोगकर्ताओं को भ्रमित और निराश कर सकता है. इस दस्तावेज़ में, उदाहरण के तौर पर दिए गए कोड में, हम इसके बाद तुरंत google.accounts.user.login() पर कॉल करेंगे लोड करता है, ताकि उदाहरण को सरल रखने के लिए उसका इस्तेमाल किया जा सके. हालांकि, हम क्लाइंट ऐप्लिकेशन के तौर पर काम करता है.

ध्यान दें कि आपको token नाम वाले वैरिएबल के साथ कुछ करने की ज़रूरत नहीं है. क्लाइंट लाइब्रेरी, टोकन को ट्रैक करती है, इसलिए आपको ऐसा करने की ज़रूरत नहीं है.

ध्यान दें: जब आप कोई नई BloggerService बनाते हैं ऑब्जेक्ट है, तो क्लाइंट लाइब्रेरी google.gdata.client.init(), जो जांच करता है कि ब्राउज़र में चल रहा क्लाइंट समर्थित है. अगर कोई गड़बड़ी है, तो क्लाइंट लाइब्रेरी उपयोगकर्ता को गड़बड़ी का मैसेज दिखाता है. अगर आपको इस तरह की गड़बड़ी को ठीक करना है तो आप साफ़ तौर पर कॉल कर सकते हैं google.gdata.client.init(handleInitError) बनाने से पहले सेवा में मौजूद है, जहां handleInitError() आपका फ़ंक्शन है. अगर कोई गड़बड़ी होती है, तो आपके फ़ंक्शन को एक स्टैंडर्ड Error ऑब्जेक्ट मिलता है. इस ऑब्जेक्ट का इस्तेमाल, अपनी ज़रूरत के मुताबिक किया जा सकता है.

टोकन तब तक मान्य रहता है, जब तक आपने इसे google.accounts.user.logout() को कॉल करके रद्द नहीं कर दिया है:

function logMeOut() {
  google.accounts.user.logout();
}

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

हालांकि, कुछ असामान्य स्थितियों में, किसी सेशन के दौरान टोकन अमान्य हो सकता है. अगर Blogger किसी टोकन को अस्वीकार करता है, तो आपके क्लाइंट को गड़बड़ी की स्थिति को मैनेज करना चाहिए. इसके लिए, मौजूदा टोकन वाली कुकी को हटाने के लिए logout() को कॉल करें. इसके बाद, नया और मान्य टोकन पाने के लिए login() को फिर से कॉल करें.

AuthSub के दो अन्य तरीके हैं जो आपको अलग-अलग तरीकों में काम के लग सकते हैं कॉन्टेक्स्ट:

  • google.accounts.user.checkLogin(scope) आपको बताता है कि नहीं, ब्राउज़र में वर्तमान में दिए गए के लिए प्रमाणीकरण टोकन है दायरा.
  • google.accounts.user.getInfo() पूरी जानकारी देता है डीबग करने के लिए, मौजूदा टोकन के बारे में जानकारी.

AuthSub के साथ इंटरैक्ट करने के लिए, JavaScript का इस्तेमाल करने के बारे में जानकारी पाने के लिए, JavaScript क्लाइंट लाइब्रेरी के साथ "AuthSub" पुष्टि करने की सुविधा का इस्तेमाल करना दस्तावेज़ देखें. इसमें टोकन मैनेजमेंट और checkLogin() और getInfo() के बारे में जानकारी भी शामिल है.

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