স্মার্ট চিপ সহ Google Books থেকে লিঙ্কগুলির পূর্বরূপ দেখুন

Coding level : Intermediate
সময়কাল : ৩০ মিনিট
Project type : Google Workspace add-on

উদ্দেশ্য

  • অ্যাড-অনটি কী করে তা বুঝুন।
  • অ্যাপস স্ক্রিপ্ট ব্যবহার করে কীভাবে অ্যাড-অন তৈরি করতে হয় তা বুঝুন এবং অ্যাপস স্ক্রিপ্ট পরিষেবাগুলি কী করে তা বুঝুন।
  • তোমার পরিবেশ ঠিক করো।
  • স্ক্রিপ্ট সেট আপ করুন।
  • Run the script.

এই Google Workspace অ্যাড-অন সম্পর্কে

এই নমুনায়, আপনি একটি Google Workspace অ্যাড-অন তৈরি করেন যা একটি Google Docs ডকুমেন্টে Google Books থেকে লিঙ্কগুলির প্রিভিউ দেখায়। যখন আপনি একটি ডকুমেন্টে একটি Google Books URL টাইপ বা পেস্ট করেন, তখন অ্যাড-অনটি লিঙ্কটি চিনতে পারে এবং একটি লিঙ্ক প্রিভিউ ট্রিগার করে। লিঙ্কটি প্রিভিউ করতে, আপনি লিঙ্কটিকে একটি স্মার্ট চিপে রূপান্তর করতে পারেন এবং বই সম্পর্কে আরও তথ্য প্রদর্শন করে এমন একটি কার্ড দেখতে লিঙ্কটির উপর পয়েন্টারটি ধরে রাখতে পারেন।

এই অ্যাড-অনটি Google Books API- এর সাথে সংযোগ স্থাপন করতে এবং Google Docs-এ প্রদর্শিত Google Books সম্পর্কে তথ্য পেতে Apps Script-এর UrlFetch পরিষেবা ব্যবহার করে।

কিভাবে এটা কাজ করে

গুগল ওয়ার্কস্পেস অ্যাড-অনের ম্যানিফেস্ট ফাইলে , স্ক্রিপ্টটি অ্যাড-অনটিকে গুগল ডক্স প্রসারিত করার জন্য কনফিগার করে এবং গুগল বই ওয়েবসাইট ( https://books.google.com ) থেকে নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন URL গুলির জন্য লিঙ্ক প্রিভিউ ট্রিগার করে।

কোড ফাইলে, স্ক্রিপ্টটি Google Books API-এর সাথে সংযোগ স্থাপন করে এবং বই সম্পর্কে তথ্য পেতে URL ব্যবহার করে (যা Volume রিসোর্সের একটি উদাহরণ)। স্ক্রিপ্টটি এই তথ্য ব্যবহার করে একটি স্মার্ট চিপ তৈরি করে যা বইয়ের শিরোনাম এবং একটি প্রিভিউ কার্ড প্রদর্শন করে যা একটি সারাংশ, পৃষ্ঠার সংখ্যা, বইয়ের প্রচ্ছদের একটি চিত্র এবং রেটিং সংখ্যা প্রদর্শন করে।

অ্যাপস স্ক্রিপ্ট পরিষেবা

এই অ্যাড-অনটি নিম্নলিখিত পরিষেবাগুলি ব্যবহার করে:

পূর্বশর্ত

এই নমুনাটি ব্যবহার করার জন্য, আপনার নিম্নলিখিত পূর্বশর্তগুলি প্রয়োজন:

  • একটি Google অ্যাকাউন্ট (Google Workspace অ্যাকাউন্টের জন্য প্রশাসকের অনুমোদনের প্রয়োজন হতে পারে)।
  • ইন্টারনেট অ্যাক্সেস সহ একটি ওয়েব ব্রাউজার।

  • একটি গুগল ক্লাউড প্রকল্প

আপনার পরিবেশ সেট আপ করুন

নিম্নলিখিত বিভাগগুলি অ্যাড-অন তৈরির জন্য আপনার পরিবেশ সেট আপ করে।

গুগল ক্লাউড কনসোলে আপনার ক্লাউড প্রোজেক্ট খুলুন।

যদি এটি ইতিমধ্যে খোলা না থাকে, তাহলে এই নমুনার জন্য আপনি যে ক্লাউড প্রকল্পটি ব্যবহার করতে চান তা খুলুন:

  1. গুগল ক্লাউড কনসোলে, একটি প্রকল্প নির্বাচন করুন পৃষ্ঠায় যান।

    Select a Cloud project

  2. আপনি যে Google Cloud প্রকল্পটি ব্যবহার করতে চান তা নির্বাচন করুন। অথবা, প্রকল্প তৈরি করুন ক্লিক করুন এবং অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন। আপনি যদি একটি Google Cloud প্রকল্প তৈরি করেন, তাহলে আপনাকে প্রকল্পের জন্য বিলিং চালু করতে হতে পারে।

গুগল বুকস এপিআই চালু করুন

এই অ্যাড-অনটি Google Books API-এর সাথে সংযুক্ত। Google API ব্যবহার করার আগে, আপনাকে একটি Google Cloud প্রকল্পে সেগুলি চালু করতে হবে। আপনি একটি Google Cloud প্রকল্পে এক বা একাধিক API চালু করতে পারেন।

এই অ্যাড-অনের জন্য একটি কনফিগার করা সম্মতি স্ক্রিন সহ একটি ক্লাউড প্রোজেক্ট প্রয়োজন। OAuth সম্মতি স্ক্রিন কনফিগার করার মাধ্যমে Google ব্যবহারকারীদের কাছে কী প্রদর্শন করে তা সংজ্ঞায়িত করা হয় এবং আপনার অ্যাপটি নিবন্ধিত করে যাতে আপনি পরে এটি প্রকাশ করতে পারেন।

  1. গুগল ক্লাউড কনসোলে, মেনু > এ যান।Google Auth platform > Branding .

    ব্র্যান্ডিং-এ যান

  2. যদি আপনি ইতিমধ্যেই কনফিগার করে থাকেন Google Auth platform, আপনি ব্র্যান্ডিং , অডিয়েন্স এবং ডেটা অ্যাক্সেসে নিম্নলিখিত OAuth কনসেন্ট স্ক্রিন সেটিংস কনফিগার করতে পারেন। যদি আপনি এমন একটি বার্তা দেখতে পান যা বলে Google Auth platform not configured yet , click Get Started :
    1. অ্যাপ তথ্য এর অধীনে, অ্যাপের নামে , অ্যাপটির জন্য একটি নাম লিখুন।
    2. ব্যবহারকারীর সহায়তা ইমেল বিভাগে, এমন একটি সহায়তা ইমেল ঠিকানা বেছে নিন যেখানে ব্যবহারকারীদের সম্মতি সম্পর্কে প্রশ্ন থাকলে তারা আপনার সাথে যোগাযোগ করতে পারবেন।
    3. পরবর্তী ক্লিক করুন।
    4. অডিয়েন্স এর অধীনে, অভ্যন্তরীণ নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন।
    6. যোগাযোগের তথ্য এর অধীনে, একটি ইমেল ঠিকানা লিখুন যেখানে আপনার প্রকল্পের যেকোনো পরিবর্তন সম্পর্কে আপনাকে অবহিত করা যেতে পারে।
    7. পরবর্তী ক্লিক করুন।
    8. Finish এর অধীনে, Google API পরিষেবা ব্যবহারকারীর ডেটা নীতি পর্যালোচনা করুন এবং যদি আপনি সম্মত হন, তাহলে আমি Google API পরিষেবাগুলিতে সম্মত: ব্যবহারকারীর ডেটা নীতি নির্বাচন করুন।
    9. চালিয়ে যান ক্লিক করুন।
    10. তৈরি করুন ক্লিক করুন।
  3. আপাতত, আপনি স্কোপ যোগ করা এড়িয়ে যেতে পারেন। ভবিষ্যতে, যখন আপনি আপনার Google Workspace সংস্থার বাইরে ব্যবহারের জন্য একটি অ্যাপ তৈরি করবেন, তখন আপনাকে ব্যবহারকারীর ধরণটি External এ পরিবর্তন করতে হবে। তারপর আপনার অ্যাপের জন্য প্রয়োজনীয় অনুমোদনের স্কোপগুলি যোগ করুন। আরও জানতে, সম্পূর্ণ Configure OAuth সম্মতি নির্দেশিকাটি দেখুন।

গুগল বুকস এপিআই-এর জন্য একটি এপিআই কী পান

  1. গুগল ক্লাউড কনসোলে যান। নিশ্চিত করুন যে আপনার বিলিং-সক্ষম প্রকল্পটি খোলা আছে।
  2. গুগল ক্লাউড কনসোলে, মেনু > API এবং পরিষেবা > শংসাপত্রগুলিতে যান।

    শংসাপত্রগুলিতে যান

  3. ক্রিয়েশনাল তৈরি করুন > API কী ক্লিক করুন।

  4. পরবর্তী ধাপে ব্যবহারের জন্য আপনার API কীটি নোট করুন।

স্ক্রিপ্ট সেট আপ করুন

নিম্নলিখিত বিভাগগুলি অ্যাড-অন তৈরির জন্য স্ক্রিপ্ট সেট আপ করে।

অ্যাপস স্ক্রিপ্ট প্রজেক্ট তৈরি করুন

  1. গুগল বুকস অ্যাপস স্ক্রিপ্ট প্রজেক্ট থেকে প্রিভিউ লিঙ্কগুলি খুলতে নিম্নলিখিত বোতামে ক্লিক করুন।
    প্রকল্পটি খুলুন
  2. Click Overview .
  3. ওভারভিউ পৃষ্ঠায়, ক্লিক করুন একটি কপি তৈরির আইকন একটি কপি তৈরি করুন
  4. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টের কপিতে, Code.gs ফাইলে যান এবং YOUR_API_KEY আগের বিভাগে তৈরি করা API কী দিয়ে প্রতিস্থাপন করুন।

ভবিষ্যতে, যদি আপনি নির্দিষ্ট কিছু Google API ব্যবহার করতে চান বা আপনার অ্যাপ প্রকাশ করতে চান, তাহলে আপনাকে অবশ্যই আপনার ক্লাউড প্রোজেক্টকে আপনার অ্যাপস স্ক্রিপ্ট প্রোজেক্টের সাথে সংযুক্ত করতে হবে। এই নির্দেশিকার জন্য, আপনাকে তা করতে হবে না। আরও জানতে, Google Cloud Projects গাইড দেখুন।

অ্যাড-অনটি পরীক্ষা করুন

নিম্নলিখিত বিভাগগুলি আপনার তৈরি অ্যাড-অনটি পরীক্ষা করে।

একটি পরীক্ষামূলক স্থাপনা ইনস্টল করুন

  1. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে, এডিটর এ ক্লিক করুন।
  2. স্থাপন > পরীক্ষা স্থাপন ক্লিক করুন।
  3. ইনস্টল করুন > সম্পন্ন ক্লিক করুন।
  1. docs.new এ একটি Google Docs ডকুমেন্ট তৈরি করুন।
  2. ডকুমেন্টে নিম্নলিখিত URL টি পেস্ট করুন এবং URL টি একটি স্মার্ট চিপে রূপান্তর করতে ট্যাব কী টিপুন: https://www.google.com/books/edition/Software_Engineering_at_Google/V3TTDwAAQBAJ
  3. স্মার্ট চিপের উপর পয়েন্টারটি ধরে রাখুন, এবং অনুরোধ করা হলে, অ্যাড-অনটি চালানোর জন্য অ্যাক্সেস অনুমোদন করুন। প্রিভিউ কার্ডটি বই সম্পর্কে তথ্য প্রদর্শন করে।

নিচের ছবিটি লিঙ্ক প্রিভিউ দেখায়:

গুগলে সফটওয়্যার ইঞ্জিনিয়ারিং বইটির একটি লিঙ্ক প্রিভিউ।

কোডটি পর্যালোচনা করুন

এই অ্যাড-অনের জন্য অ্যাপস স্ক্রিপ্ট কোড পর্যালোচনা করতে, বিভাগটি প্রসারিত করতে সোর্স কোড দেখুন এ ক্লিক করুন:

সোর্স কোড দেখুন

অ্যাপস্ক্রিপ্ট.জেসন

সমাধান/অ্যাড-অন/বুক-স্মার্টচিপ/অ্যাপস্ক্রিপ্ট.জেসন
{
  "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"
          }
        }
      ]
    }
  }
}

কোড.জিএস

সমাধান/অ্যাড-অন/বুক-স্মার্টচিপ/কোড.জেএস
/**
 * Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

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();
  }
}