स्मार्ट चिप की मदद से, Google Books पर मौजूद लिंक की झलक देखना

कोडिंग का लेवल: बीच के लेवल पर
कुल समय: 30 मिनट
प्रोजेक्ट टाइप: Google Workspace ऐड-ऑन

मकसद

  • जानें कि ऐड-ऑन क्या करता है.
  • जानें कि Apps Script का इस्तेमाल करके ऐड-ऑन कैसे बनाते हैं. साथ ही, यह भी जानें कि Apps Script सेवाओं से क्या होता है.
  • अपना एनवायरमेंट सेट अप करें.
  • स्क्रिप्ट सेट अप करें.
  • स्क्रिप्ट चलाएं.

इस Google Workspace ऐड-ऑन के बारे में जानकारी

इस सैंपल में, आपने Google Workspace ऐड-ऑन बनाया है, जो Google Docs दस्तावेज़ में Google Books के लिंक की झलक दिखाता है. किसी दस्तावेज़ में Google Books का यूआरएल टाइप करने या चिपकाने पर, ऐड-ऑन उस लिंक को पहचान लेता है और लिंक की झलक ट्रिगर करता है. लिंक की झलक देखने के लिए, उसे स्मार्ट चिप में बदलें और लिंक पर कर्सर घुमाएं. इससे आपको एक कार्ड दिखेगा, जिसमें किताब के बारे में ज़्यादा जानकारी दिखेगी.

यह ऐड-ऑन, Google Books API से कनेक्ट करने और Google Docs में दिखाने के लिए, Google Books के बारे में जानकारी पाने के लिए, Apps Script की UrlFetch सेवा का इस्तेमाल करता है.

यह कैसे काम करता है

Google Workspace ऐड-ऑन की मेनिफ़ेस्ट फ़ाइल में, स्क्रिप्ट ऐड-ऑन को कॉन्फ़िगर करती है, ताकि Google Docs का डेटा बढ़ाया जा सके. साथ ही, Google Books की वेबसाइट (https://books.google.com) के कुछ खास पैटर्न से मेल खाने वाले यूआरएल के लिए, लिंक की झलक को ट्रिगर किया जा सके.

कोड फ़ाइल में, स्क्रिप्ट को Google Books API से कनेक्ट किया जाता है और किताब के बारे में जानकारी पाने के लिए, यूआरएल का इस्तेमाल किया जाता है. यह यूआरएल, Volume संसाधन का एक इंस्टेंस है. यह स्क्रिप्ट एक स्मार्ट चिप जनरेट करने के लिए, इस जानकारी का इस्तेमाल करती है. इसमें किताब का टाइटल और झलक दिखाने वाला कार्ड होता है. इसमें खास जानकारी, पेजों की संख्या, किताब के कवर की इमेज, और रेटिंग की संख्या दिखती है.

Apps Script सेवाएं

यह ऐड-ऑन इन सेवाओं का इस्तेमाल करता है:

  • UrlFetch सेवा–किताबों के बारे में जानकारी पाने के लिए, Google Books API से कनेक्ट करता है (जो एपीआई के Volume संसाधन के इंस्टेंस हैं).
  • कार्ड सेवा–ऐड-ऑन का यूज़र इंटरफ़ेस बनाता है.

ज़रूरी शर्तें

इस सैंपल का इस्तेमाल करने के लिए, आपको ये ज़रूरी शर्तें पूरी करनी होंगी:

अपना एनवायरमेंट सेट अप करें

Google Cloud Console में अपना Cloud प्रोजेक्ट खोलें

अगर यह पहले से नहीं खुला है, तो वह Cloud प्रोजेक्ट खोलें जिसे आपको इस सैंपल के लिए इस्तेमाल करना है:

  1. Google Cloud Console में, कोई प्रोजेक्ट चुनें पेज पर जाएं.

    Cloud प्रोजेक्ट चुनें

  2. वह Google Cloud प्रोजेक्ट चुनें जिसका आपको इस्तेमाल करना है. या प्रोजेक्ट बनाएं पर क्लिक करके, स्क्रीन पर दिए गए निर्देशों का पालन करें. अगर आपने Google Cloud प्रोजेक्ट बनाया है, तो आपको प्रोजेक्ट के लिए बिलिंग चालू करनी पड़ सकती है.

Google Books API चालू करना

यह ऐड-ऑन, Google Books API से कनेक्ट होता है. Google API का इस्तेमाल करने से पहले, आपको उन्हें Google Cloud प्रोजेक्ट में चालू करना होगा. किसी एक Google Cloud प्रोजेक्ट में, एक या उससे ज़्यादा एपीआई चालू किए जा सकते हैं.

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

  1. Google Cloud Console में, मेन्यू > एपीआई और सेवाएं > OAuth की सहमति वाली स्क्रीन पर जाएं.

    ऐसी स्क्रीन पर जाएं जहां OAuth के लिए सहमति दी जाती है

  2. उपयोगकर्ता टाइप के लिए, अंदरूनी चुनें. इसके बाद, बनाएं पर क्लिक करें.
  3. ऐप्लिकेशन रजिस्ट्रेशन फ़ॉर्म भरें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें.
  4. फ़िलहाल, दायरों को छोड़कर आगे बढ़ा जा सकता है. साथ ही, सेव करें और जारी रखें पर क्लिक करें. आने वाले समय में, जब अपने Google Workspace संगठन से बाहर इस्तेमाल करने के लिए कोई ऐप्लिकेशन बनाया जाएगा, तो आपको उपयोगकर्ता टाइप को बाहरी उपयोगकर्ता में बदलना होगा. इसके बाद, आपको अपने ऐप्लिकेशन के लिए ज़रूरी अनुमति के दायरे जोड़ने होंगे.

  5. अपने ऐप्लिकेशन रजिस्ट्रेशन की खास जानकारी देखें. बदलाव करने के लिए, बदलाव करें पर क्लिक करें. अगर ऐप्लिकेशन रजिस्ट्रेशन ठीक लग रहा है, तो डैशबोर्ड पर वापस जाएं पर क्लिक करें.

Google Books API के लिए एपीआई पासकोड पाना

  1. Google Cloud Console पर जाएं. पक्का करें कि बिलिंग की सुविधा वाला आपका प्रोजेक्ट खुला हो.
  2. Google Cloud Console में, मेन्यू > एपीआई और सेवाएं > क्रेडेंशियल पर जाएं.

    क्रेडेंशियल पर जाएं

  3. क्रेडेंशियल बनाएं > एपीआई पासकोड पर क्लिक करें.

  4. बाद के चरण में इस्तेमाल करने के लिए, अपनी एपीआई कुंजी का ध्यान रखें.

स्क्रिप्ट सेट अप करें

Apps Script प्रोजेक्ट बनाना

  1. Google Books के Apps Script प्रोजेक्ट में, लिंक की झलक देखने के लिए, नीचे दिए गए बटन पर क्लिक करें.
    प्रोजेक्ट खोलें
  2. खास जानकारी पर क्लिक करें.
  3. खास जानकारी देने वाले पेज पर, कॉपी बनाने के लिए आइकॉन कॉपी बनाएं पर क्लिक करें.
  4. Apps Script प्रोजेक्ट की अपनी कॉपी में, Code.gs फ़ाइल पर जाएं और YOUR_API_KEY की जगह वह एपीआई पासकोड डालें जिसे आपने पिछले सेक्शन में जनरेट किया था.

Cloud प्रोजेक्ट नंबर कॉपी करें

  1. Google Cloud Console में, मेन्यू > IAM और एडमिन > सेटिंग पर जाएं.

    IAM और एडमिन सेटिंग पर जाएं

  2. प्रोजेक्ट नंबर फ़ील्ड में, वैल्यू कॉपी करें.

Apps Script प्रोजेक्ट का क्लाउड प्रोजेक्ट सेट करें

  1. अपने Apps Script प्रोजेक्ट में, प्रोजेक्ट सेटिंग का आइकॉन प्रोजेक्ट सेटिंग पर क्लिक करें.
  2. Google Cloud Platform (GCP) प्रोजेक्ट में जाकर, प्रोजेक्ट बदलें पर क्लिक करें.
  3. GCP प्रोजेक्ट नंबर में, Google Cloud प्रोजेक्ट नंबर चिपकाएं.
  4. प्रोजेक्ट सेट करें पर क्लिक करें.

ऐड-ऑन को आज़माएं

टेस्ट डिप्लॉयमेंट इंस्टॉल करें

  1. अपने Apps Script प्रोजेक्ट में, एडिटर पर क्लिक करें.
  2. Code.gs फ़ाइल खोलें और Run पर क्लिक करें. जब कहा जाए, तब स्क्रिप्ट को अनुमति दें.
  3. डिप्लॉयमेंट > डिप्लॉयमेंट की जांच करें पर क्लिक करें.
  4. इंस्टॉल करें > हो गया पर क्लिक करें.
  1. docs.new पर जाकर Google Docs दस्तावेज़ बनाएं.
  2. इस यूआरएल को दस्तावेज़ में चिपकाएं और यूआरएल को स्मार्ट चिप में बदलने के लिए, Tab बटन दबाएं: https://www.google.com/books/edition/Software_Engineering_at_Google/V3TTDwAAQBAJ
  3. पॉइंटर को स्मार्ट चिप पर रखें. जब कहा जाए, तब ऐड-ऑन चलाने के लिए ऐक्सेस की अनुमति दें. झलक वाले कार्ड में, किताब के बारे में जानकारी दिखती है.

इस इमेज में, लिंक की झलक दिखाई गई है:

Google में सॉफ़्टवेयर इंजीनियरिंग किताब की झलक.

कोड की समीक्षा करें

इस ऐड-ऑन के Apps Script कोड की समीक्षा करने के लिए, नीचे सोर्स कोड देखें पर क्लिक करें:

सोर्स कोड देखें

appsscript.json

solutions/add-on/book-smartchip/appsscript.json
{
  "timeZone": "America/Los_Angeles",
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/workspace.linkpreview",
    "https://www.googleapis.com/auth/script.external_request"
  ],
  "urlFetchWhitelist": [
    "https://www.googleapis.com/books/v1/volumes/"
  ],
  "addOns": {
    "common": {
      "name": "Preview Books Add-on",
      "logoUrl": "https://developers.google.com/workspace/add-ons/images/library-icon.png",
      "layoutProperties": {
        "primaryColor": "#dd4b39"
      }
    },
    "docs": {
      "linkPreviewTriggers": [
        {
          "runFunction": "bookLinkPreview",
          "patterns": [
            {
              "hostPattern": "*.google.*",
              "pathPrefix": "books"
            },
            {
              "hostPattern": "*.google.*",
              "pathPrefix": "books/edition"
            }
          ],
          "labelText": "Book",
          "logoUrl": "https://developers.google.com/workspace/add-ons/images/book-icon.png",
          "localizedLabelText": {
            "es": "Libros"
          }
        }
      ]
    }
  }
}

Code.gs

solutions/add-on/book-smartchip/Code.js
function getBook(id) {
  const apiKey = 'YOUR_API_KEY'; // Replace with your API key
  const apiEndpoint = `https://www.googleapis.com/books/v1/volumes/${id}?key=${apiKey}&country=US`;
  const response = UrlFetchApp.fetch(apiEndpoint);
  return JSON.parse(response);
}

function bookLinkPreview(event) {
 if (event.docs.matchedUrl.url) {
    const segments = event.docs.matchedUrl.url.split('/');
    const volumeID = segments[segments.length - 1];

    const bookData = getBook(volumeID);
    const bookTitle = bookData.volumeInfo.title;
    const bookDescription = bookData.volumeInfo.description;
    const bookImage = bookData.volumeInfo.imageLinks.small;
    const bookAuthors = bookData.volumeInfo.authors;
    const bookPageCount = bookData.volumeInfo.pageCount;

    const previewHeader = CardService.newCardHeader()
      .setSubtitle('By ' + bookAuthors)
      .setTitle(bookTitle);

    const previewPages = CardService.newDecoratedText()
      .setTopLabel('Page count')
      .setText(bookPageCount);

    const previewDescription = CardService.newDecoratedText()
      .setTopLabel('About this book')
      .setText(bookDescription).setWrapText(true);

    const previewImage = CardService.newImage()
      .setAltText('Image of book cover')
      .setImageUrl(bookImage);

    const buttonBook = CardService.newTextButton()
      .setText('View book')
      .setOpenLink(CardService.newOpenLink()
        .setUrl(event.docs.matchedUrl.url));

    const cardSectionBook = CardService.newCardSection()
      .addWidget(previewImage)
      .addWidget(previewPages)
      .addWidget(CardService.newDivider())
      .addWidget(previewDescription)
      .addWidget(buttonBook);

    return CardService.newCardBuilder()
    .setHeader(previewHeader)
    .addSection(cardSectionBook)
    .build();
  }
}

अगले चरण