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

कोडिंग लेवल: इंटरमीडिएट
अवधि: 30 मिनट
प्रोजेक्ट टाइप: Google Workspace ऐड-ऑन

मकसद

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

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

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

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

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

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

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

Apps Script सेवाएं

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

  • UrlFetch सेवा–Google Books से कनेक्ट होती है किताबों के बारे में जानकारी पाने के लिए एपीआई (जो एपीआई के इंस्टेंस हैं 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 प्रोजेक्ट के लिए Cloud प्रोजेक्ट सेट करना

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

ऐड-ऑन का परीक्षण करें

नीचे दिए गए सेक्शन, आपके बनाए गए ऐड-ऑन की जांच करते हैं.

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

  1. अपने Apps Script प्रोजेक्ट में, एडिटर पर क्लिक करें.
  2. YOUR_API_KEY को Google Books API के लिए एपीआई पासकोड से बदलें. इस एपीआई को इसमें बनाया गया है पिछला सेक्शन देखें.
  3. डिप्लॉयमेंट > डिप्लॉयमेंट की जांच करें पर क्लिक करें.
  4. इंस्टॉल करें > हो गया पर क्लिक करें.
  1. यहां पर एक Google दस्तावेज़ दस्तावेज़ बनाएं docs.new.
  2. दस्तावेज़ में नीचे दिया गया यूआरएल चिपकाएं और टैब कुंजी दबाएं यूआरएल को स्मार्ट चिप में बदलो: 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();
  }
}