Dynamic Links

Google Books की डाइनैमिक लिंक सुविधा की मदद से, अपनी साइट से Google Books के लिए ज़्यादा भरोसेमंद और भरोसेमंद लिंक बनाए जा सकते हैं. उदाहरण के लिए, आप इस टूल की मदद से ऐसे लिंक जनरेट और कोट कर सकते हैं जो सिर्फ़ तब दिखते हैं, जब कोई किताब हमारे इंडेक्स में होती है. इसके अलावा, आप ऐसे लिंक भी दिखा सकते हैं जो आपके उपयोगकर्ताओं को बताते हैं कि Google Books पर किसी किताब की झलक देखी जा सकती है या नहीं. डाइनैमिक लिंक सुविधा से आप Google Books के लिंक में थंबनेल इमेज भी शामिल कर सकते हैं. इस दस्तावेज़ का मकसद आपको अपनी साइट पर यह सुविधा फटाफट जोड़ना है.

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

झलक दिखाने वाला विज़र्ड, ऐसा टूल है जो डाइनैमिक लिंक के ऊपर बना होता है. इसकी मदद से, कोड की कुछ लाइनों को कॉपी करके, आसानी से साइट से किताब की झलक देखी जा सकती है. यह दस्तावेज़ उन ज़्यादा अनुभवी डेवलपर के लिए है जो अपने हिसाब से बुक सर्च के लिंक को अपनी पसंद के मुताबिक बनाना चाहते हैं.

कॉन्टेंट

  1. दर्शक
  2. किताब की खोज के लिए शब्दों का इस्तेमाल
  3. शुरुआती जानकारी
  4. ब्रैंडिंग के लिए दिशा-निर्देश
  5. क्लाइंट-साइड एपीआई
    1. यूआरएल के लिए अनुरोध करें
    2. JSON नतीजे का फ़ॉर्मैट
  6. सिंक्रोनस और एसिंक्रोनस मोड
  7. अक्सर पूछे जाने वाले सवाल
  8. कोड के नमूने

दर्शक

डाइनैमिक लिंक दस्तावेज़ उन प्रोग्रामर के लिए है जो Google Books में मौजूद किताबों के लिंक वाले वेब ऐप्लिकेशन लिखना चाहते हैं. इस दस्तावेज़ में यह माना जाता है कि आप एचटीटीपी प्रोटोकॉल और बुनियादी JavaScript के बारे में जानते हैं.

किताब खोजने के लिए इस्तेमाल होने वाले शब्द

Google Books, उपयोगकर्ता के स्थानीय कॉपीराइट से जुड़ी पाबंदियों का पालन करता है. इसलिए, कुछ जगहों पर किताबों की झलक या पूरे व्यू, सभी जगहों पर उपलब्ध नहीं हैं. विज्ञापन दिखने से जुड़े आंकड़े इन क्लास में शामिल किए जाते हैं:

फ़ुल स्क्रीन
पूरी किताब को देखा जा सकता है. ये किताबें सार्वजनिक डोमेन में हो सकती हैं.
सीमित झलक
किताब का एक हिस्सा देखा जा सकता है. यह पुस्तक कॉपीराइट के अंतर्गत है और Google पुस्तकें को इन पृष्ठों को उपयोगकर्ताओं के लिए पहुंच-योग्य बनाने की अनुमति मिली हुई है. ये किताबें, स्निपेट व्यू की उन किताबों से अलग होती हैं जिन्हें उपयोगकर्ता पूरे पेज पर देख सकते हैं.
स्निपेट व्यू और कोई झलक नहीं
उपयोगकर्ताओं को सिर्फ़ &कोटेशन, किताब और कोट के बारे में पेज दिखता है. ज़्यादा से ज़्यादा, किताब के कुछ हिस्से ही उपलब्ध होते हैं. इस पुस्तक को या तो स्कैन नहीं किया गया है या कॉपीराइट के अंतर्गत है और Google पुस्तकें को उपयोगकर्ता के खोज शब्द से संबंधित कुछ और कोट > स्निपेट और कोटेशन को प्रदर्शित करने की अनुमति नहीं है.

परिचय

स्टैटिक लिंक दस्तावेज़ में, Google Books पर मौजूद किसी खास किताब के पेज पर, यूआरएल जनरेट करने का बहुत आसान तरीका बताया गया है. माफ़ करें, कभी-कभी ऐसा हो सकता है कि कोई खास किताब Google Books के इंडेक्स में न हो या उसकी झलक किसी उपयोगकर्ता के लिए उपलब्ध न हो. स्टैटिक लिंक कोट और ब्लाइंड &कोट हैं, इसलिए वे कभी-कभी सही नतीजे नहीं दे पाते.

डाइनैमिक लिंक, JavaScript का इस्तेमाल करके, किसी किताब के विज्ञापन दिखने से जुड़े आंकड़ों के बारे में क्वेरी करने के लिए, वैकल्पिक और क्लाइंट-साइड वाला तरीका मुहैया कराते हैं. इससे, Search पर किताब के खोज नतीजों में ज़्यादा भरोसेमंद और अनुमानित लिंक शामिल किए जा सकते हैं. इससे, उपयोगकर्ताओं को बेहतर अनुभव मिलेगा. असली उपयोगकर्ता की जगह के मुताबिक विज्ञापन दिखने से जुड़े आंकड़े अलग-अलग होते हैं, इसलिए डाइनैमिक लिंक इंटरफ़ेस को सर्वर-साइड या ऑफ़लाइन क्वेरी के लिए नहीं बनाया गया है.

डाइनैमिक लिंक क्या कर सकते हैं, यह जानने के लिए इस दस्तावेज़ के आखिर में मौजूद कोड सैंपल पर जाएं.

ब्रैंडिंग के लिए दिशा-निर्देश

डाइनैमिक लिंक रेंडर करते समय, आपको उन ब्रैंडिंग दिशा-निर्देशों का पालन करना होगा जो Google Books API फ़ैमिली को कंट्रोल करते हैं. खास तौर पर,

  • आपको Google Books के लिए एट्रिब्यूशन और लिंक बनाए रखने होंगे.
  • Google Books पर झलक को लिंक करते समय, आपको सिर्फ़ ऐसे Google झलक बटन का इस्तेमाल करना चाहिए जिसे मंज़ूरी मिली हो.
  • सभी टेक्स्ट लिंक, बटन, दस्तावेज़ या जानकारी देने वाले टेक्स्ट को, नाम से जुड़ी शर्तों का पालन करना चाहिए. उदाहरण के लिए, आपको Google Books के प्रीव्यू से लिंक करते समय, वाक्यों, कोट, डाउनलोड, और कोट;और &कोटेशन का इस्तेमाल नहीं करना चाहिए. ऐसा इसलिए, क्योंकि सिर्फ़ पूरी तरह से सार्वजनिक डोमेन के काम ही डाउनलोड किए जा सकते हैं.

ब्रैंडिंग का उदाहरण

फ़्रीकोनॉमिक्स: रॉग इकोनॉमिस्ट हर चीज़ के छिपे हुए हिस्से को एक्सप्लोर करता है
स्टीवन लेविट और स्टीफ़न डब्नर

इस दस्तावेज़ के आखिर में मौजूद, सैंपल सेक्शन में ऐसे अन्य उदाहरण दिए गए हैं जो मौजूदा ब्रैंडिंग दिशा-निर्देशों के मुताबिक हैं.

क्लाइंट-साइड एपीआई

क्लाइंट-साइड डाइनैमिक लिंक के कोर में, यूआरएल का एक ऐसा फ़ॉर्मैट होता है जो डेवलपर को एक या ज़्यादा किताबों के बारे में जानकारी का अनुरोध करने वाले यूआरएल बनाने देता है. साथ ही, <script> टैग का इस्तेमाल करके Google Books को अनुरोध भेजने देता है.

सिंटैक्स का उदाहरण:
<script src="https://books.google.com/books?bibkeys=ISBN:0451526538&jscmd=viewapi&callback=mycallback"></script>

अनुरोध का फ़ॉर्मैट

यूआरएल का फ़ॉर्मैट, यूआरएल सिंटैक्स के बराबर है. इसका इस्तेमाल किताबों के लिंक करने के लिए किया जाता है. हालांकि, किताब के आईडी के फ़ील्ड में, कॉमा लगाकर अलग किए गए कई किताब आईडी और ##39;jscmd' और 'callback' पैरामीटर हो सकते हैं. इसके अलावा, विज्ञापन दिखने से जुड़े आंकड़ों के फ़िल्टर को कंट्रोल करने के लिए, अन्य आर्ग्युमेंट मौजूद हो सकते हैं.

डाइनैमिक लिंक, किताबों की पहचान करने के लिए कई अलग-अलग तरीकों का इस्तेमाल करते हैं: ISBN, OCLC नंबर और LCCN कुंजियां. एपीआई, बैच के लिए किए गए अनुरोध की ज़्यादा से ज़्यादा साइज़ के मुताबिक, बैच में जनरेट की गई क्वेरी भेज सकता है.

ISBN
&bibkeys=ISBN:0451526538 (एपीआई, ISBN 10 और 13, दोनों पर काम करता है.)
ओसीएलसी
&bibkeys=OCLC:36792831
एलसीसीएन
&bibkeys=LCCN:96072233

JSON नतीजे का फ़ॉर्मैट

इस कॉल के जवाब में, एक या एक से ज़्यादा JSON ऑब्जेक्ट के तौर पर अनुरोध की गई किताबों के बारे में जानकारी होगी. JSON ऑब्जेक्ट इस स्ट्रक्चर का इस्तेमाल करते हैं:

JsonSearchResult {
    string bib_key;
    string info_url;
    string preview_url;
    string thumbnail_url;
    string preview;
};

ये फ़ील्ड नीचे दी गई जानकारी देती हैं:

bib_key
इस किताब की क्वेरी करने के लिए इस्तेमाल किया गया आइडेंटिफ़ायर.
info_url
Google Books में मौजूद किसी पेज का यूआरएल, जिसमें किताब की जानकारी होती है (इस किताब के पेज के बारे में).
preview_url
किताब की झलक का यूआरएल, जो उपयोगकर्ता को सीधे किताब के कवर पर ले जाता है. अगर अनुरोध के लिए सिर्फ़ स्निपेट व्यू या झलक नहीं वाली किताबें उपलब्ध हैं, तो झलक दिखाने के लिए कोई यूआरएल नहीं दिखाया जाएगा.
थंबनेल_यूआरएल
किताब के कवर का थंबनेल.
झलक देखें
किताब की विज्ञापन दिखने की स्थिति के बारे में बताने वाली वैल्यू: full (व्यू की पूरी किताबों के लिए), partial (सीमित झलक वाली किताबों के लिए) या noview (स्निपेट या झलक न दिखाने वाली किताबों के लिए).
एम्बेड करने लायक
अगर किताब को किताब के खोज नतीजों में एम्बेड किए गए दर्शक की मदद से तीसरे पक्ष के पेजों पर जोड़ा जा सकता है, तो यह बूलियन true फ़ॉर्मैट होगा.

जवाब के तौर पर, दो ऑब्जेक्ट वाली JSON ऑब्जेक्ट और "books" जिसमें बुक ऑब्जेक्ट के मैप की वैल्यू और "Options" होता है. इसमें उस अनुरोध के लिए चालू किए गए विकल्पों की सूची होती है. अगर कोई भी विकल्प नहीं दिया गया है, तो जवाब में "options" फ़ील्ड को छोड़ा जा सकता है. उदाहरण के लिए:

Request:
https://books.google.com/books?jscmd=viewapi&bibkeys=0596000278,00-invalid-isbn,ISBN0765304368,0439554934&callback=ProcessGBSBookInfo

Response:
ProcessGBSBookInfo({
    "0596000278":{
        "bib_key":"0596000278",
        "info_url":"https://books.google.com/books?id=ezqe1hh91q4C&source=gbs_ViewAPI",
        "preview_url":"https://books.google.com/books?id=ezqe1hh91q4C&printsec=frontcover&sig=zSQ5gwlX1NZl_24M86KS8Rbj33Q&source=gbs_ViewAPI",
        "thumbnail_url":"https://books.google.com/books?id=ezqe1hh91q4C&pg=PR3&img=1&zoom=5&sig=bBmzIAIiCtMcM7Ii7TUHycqqEWg",
        "preview":"partial"
    },
    "ISBN0765304368":{
        "bib_key":"ISBN0765304368",
        "info_url":"https://books.google.com/books?id=gfg13CM_kU8C&source=gbs_ViewAPI",
        "preview_url":"https://books.google.com/books?id=gfg13CM_kU8C&printsec=frontcover&sig=jIrSb_SkcQRhy_VvtnKbTXjmvos&source=gbs_ViewAPI",
        "thumbnail_url":"https://books.google.com/books?id=gfg13CM_kU8C&pg=PP1&img=1&zoom=5&sig=LsTwGVAsy_qWYMPM6HVDTPAMokg",
        "preview":"full"
    },
    "0439554934":{
        "bib_key":"0439554934",
        "info_url":"https://books.google.com/books?id=iwiYGwAACAAJ&source=gbs_ViewAPI",
        "preview_url":"https://books.google.com/books?id=iwiYGwAACAAJ&source=gbs_ViewAPI",
        "thumbnail_url":"https://books.google.com/books?id=iwiYGwAACAAJ&printsec=frontcover&img=1&zoom=5&sig=_L6ySKDAs-8gNK28c3NyFdO22ZM",
        "preview":"noview"}
});

इसके बाद, डेवलपर अपने वेब पेजों के कॉन्टेंट और उनके दिखने के तरीके में बदलाव कर सकते हैं. ऐसा, GBS सर्वर से मिले JSON के नतीजों के आधार पर किया जा सकता है. फ़िलहाल, GBS, DOM में बदलाव करने के लिए लाइब्रेरी नहीं देता है.

पैरामीटर और दूसरे फ़ील्ड

jscmd
Google Books का अनुरोध.
कॉलबैक
उस JavaScript फ़ंक्शन का नाम जिसे हम लौटाने के लिए पास करते हैं.

सिंक्रोनस बनाम एसिंक्रोनस मोड

एसिंक्रोनस मोड

एसिंक्रोनस मोड में, डेवलपर, दस्तावेज़ के <head> में <script> टैग को रखता है और पेज को रेंडर करने के लिए ज़रूरी सभी आइडेंटिफ़ायर के साथ यूआरएल बनाता है. कॉल को वैरिएबल में डेटा मिलता है. इससे किताब की जानकारी बाकी दस्तावेज़ में उपलब्ध हो जाती है और इसे एचटीएमएल और JavaScript में तुरंत ऐक्सेस किया जा सकता है.

सिंक्रोनस मोड

सिंक्रोनस मोड में, डेवलपर एचटीएमएल <body> के बीच में दिए गए यूआरएल का इस्तेमाल करता है. रिस्पॉन्स को JavaScript कॉलबैक का इस्तेमाल करके मैनेज किया जाता है.

अक्सर पूछे जाने वाले सवाल

सवाल: क्या डाइनैमिक लिंक का इस्तेमाल करने के लिए, मुझे एपीआई कुंजी या अन्य अनुमति की ज़रूरत है?
जवाब: डाइनैमिक लिंक का इस्तेमाल करने के लिए, एपीआई कुंजी या किसी अन्य अनुमति की ज़रूरत नहीं होती. शुरू करने के लिए, बस हमारे उदाहरणों में से किसी एक को कॉपी करें और पेस्ट करें.
सवाल: ऐसे ब्राउज़र का क्या मतलब है जो JavaScript की सुविधा बंद कर देते हैं या बंद कर दिए जाते हैं?
जवाब: किसी उपयोगकर्ता के ब्राउज़र में JavaScript चालू होने पर, इस बात की जांच नहीं की जा सकती कि Google Books में कोई किताब है या नहीं. हमारा सुझाव है कि आप बिना ब्राउज़र वाले ब्राउज़र के लिए, Google Books की लिंक के स्टैटिक स्ट्रक्चर का इस्तेमाल करें. हालांकि, ध्यान रखें कि आपको पहले से पता न हो कि Google Books में वह किताब मौजूद है या नहीं जिसे आपने जोड़ा है.
सवाल: एक बार में कितनी किताबें खोजी जा सकती हैं?
जवाब: आप जो किताबें खोज सकते हैं उनकी संख्या सिर्फ़ जीईटी अनुरोधों की लंबाई के हिसाब से तय होती है. Microsoft Internet Explorer में, ज़्यादा से ज़्यादा यूआरएल लंबाई (2,083 वर्ण), GET अनुरोधों की लंबाई को सीमित करती है.
सवाल: Google Books कुछ समय पहले ही किताब के नतीजे दिखा रहा है. यह अब नतीजे क्यों नहीं दिखा रहा है?
जवाब: डेवलपर अक्सर बहुत ज़्यादा अनुरोध जारी करते हैं, इसलिए हो सकता है कि आप गलती से Google Books पर मिलने वाली सुरक्षा सावधानियां देख लें. यह देखने के लिए कि ऐसा हो रहा है या नहीं, देखें कि API से क्या दिखाया जा रहा है. अगर कैप्चा भरने के लिए कोई अनुरोध किया गया है, तो इसका मतलब है कि आपने बहुत ज़्यादा क्वेरी जारी की हैं. हमारा सुझाव है कि आप Google Books में लॉग इन करें और फिर से कोशिश करें.
सवाल: निजता के बारे में क्या ख़याल है?
जवाब: किताब के विज्ञापन दिखने से जुड़े सवालों के जवाब देने पर, Google को व्यक्तिगत रूप से पहचाना न जा सकने वाला सर्वर लॉग डेटा मिलता है. हम उपयोगकर्ता की निजता को गंभीरता से लेते हैं और इस डेटा का इस्तेमाल अपनी निजता नीति के तहत करते हैं. अगर आप उपयोगकर्ताओं को ऐसी सेवा दे रहे हैं जिसमें विज्ञापन दिखने से जुड़े आंकड़े शामिल हैं, तो आप अपने उपयोगकर्ताओं को यह बताना चाहेंगे कि आपकी सेवा, डाइनैमिक लिंक के ज़रिए Google को क्वेरी भी सबमिट करती है.

कोड के नमूने

इस सेक्शन में सैंपल दिए गए हैं, जिनमें डाइनैमिक लिंक को इस्तेमाल करने के अलग-अलग तरीके बताए गए हैं. उदाहरण देखने के लिए, आप उस उदाहरण पर क्लिक कर सकते हैं. इसमें शामिल कोड देखने के लिए, अपने ब्राउज़र में मौजूद "सोर्स देखें" देखें.

  • किताब के पेज के लिए झलक दिखाने वाला बटन
    अगर आपको अपनी साइट पर मौजूद अलग-अलग किताबों के पेजों में बटन जोड़ने और कोट करने के लिए, डाइनैमिक लिंक का इस्तेमाल करना है, तो यह उदाहरण आपके लिए है. इसे लागू करने के लिए, Google Books में सिंक्रोनस कॉल का इस्तेमाल किया जाता है.
  • कोर्स की रीडिंग लिस्ट
    इस उदाहरण में, शिक्षा से जुड़े कोर्स की सामान्य सूची दिखाई गई है. हम Google Books पर किताब के पेजों को लिंक करने, कवर इमेज जोड़ने, और झलक की उपलब्धता के बारे में बताने के लिए, एक सिंक्रोनस कॉल का इस्तेमाल करते हैं.
  • किताबों की वैकल्पिक सूची
    पिछले उदाहरण की तरह ही, इस नमूने में किताब को खोजने के लिए, एसिंक्रोनस एपीआई कॉलबैक का इस्तेमाल किया गया है.
  • इंटरैक्टिव AJAX
    डाइनैमिक लिंक, AJAX ऐप्लिकेशन, और दूसरे ऐप्लिकेशन में डाइनैमिक लिंक का इस्तेमाल करने में आपकी दिलचस्पी हो सकती है. इस उदाहरण में बताया गया है कि पेज को रीफ़्रेश किए बिना कई अलग-अलग कॉल कैसे जारी किए जा सकते हैं.