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

কোডিং স্তর : মধ্যবর্তী
সময়কাল : ৩০ মিনিট
প্রকল্পের ধরণ : গুগল ওয়ার্কস্পেস অ্যাড-অন

উদ্দেশ্য

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

এই 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 রিসোর্সের একটি উদাহরণ)। স্ক্রিপ্টটি এই তথ্য ব্যবহার করে একটি স্মার্ট চিপ তৈরি করে যা বইয়ের শিরোনাম এবং একটি প্রিভিউ কার্ড প্রদর্শন করে যা একটি সারাংশ, পৃষ্ঠার সংখ্যা, বইয়ের প্রচ্ছদের একটি চিত্র এবং রেটিং সংখ্যা প্রদর্শন করে।

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

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

পূর্বশর্ত

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

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

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

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

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

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

    একটি ক্লাউড প্রকল্প নির্বাচন করুন

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

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

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

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

  1. গুগল ক্লাউড কনসোলে, মেনু > এ যানGoogle Auth platform > ব্র্যান্ডিং

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

  2. যদি আপনি ইতিমধ্যেই কনফিগার করে থাকেন Google Auth platform, আপনি ব্র্যান্ডিং , অডিয়েন্স এবং ডেটা অ্যাক্সেসে নিম্নলিখিত OAuth কনসেন্ট স্ক্রিন সেটিংস কনফিগার করতে পারেন। যদি আপনি এমন একটি বার্তা দেখতে পান যা বলে Google Auth platform এখনও কনফিগার করা হয়নি , শুরু করুন ক্লিক করুন:
    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. ওভারভিউতে ক্লিক করুন।
  3. ওভারভিউ পৃষ্ঠায়, ক্লিক করুন একটি কপি তৈরির আইকন একটি কপি তৈরি করুন
  4. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টের কপিতে, Code.gs ফাইলে যান এবং YOUR_API_KEY আগের বিভাগে তৈরি করা API কী দিয়ে প্রতিস্থাপন করুন।

ক্লাউড প্রজেক্ট নম্বরটি কপি করুন

  1. গুগল ক্লাউড কনসোলে, মেনু > IAM & Admin > সেটিংস এ যান।

    IAM এবং অ্যাডমিন সেটিংসে যান।

  2. প্রজেক্ট নম্বর ক্ষেত্রে, মানটি অনুলিপি করুন।

অ্যাপস স্ক্রিপ্ট প্রজেক্টের ক্লাউড প্রজেক্ট সেট করুন

  1. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে, ক্লিক করুন প্রকল্প সেটিংসের আইকন প্রকল্প সেটিংস
  2. গুগল ক্লাউড প্ল্যাটফর্ম (জিসিপি) প্রজেক্টের অধীনে, প্রজেক্ট পরিবর্তন করুন এ ক্লিক করুন।
  3. GCP প্রজেক্ট নম্বরে , Google Cloud প্রজেক্ট নম্বরটি পেস্ট করুন।
  4. প্রজেক্ট সেট করুন এ ক্লিক করুন।

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

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

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

  1. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে, এডিটর এ ক্লিক করুন।
  2. পূর্ববর্তী বিভাগে তৈরি Google Books API-এর জন্য YOUR_API_KEY এর পরিবর্তে API কীটি ব্যবহার করুন।
  3. স্থাপন > পরীক্ষা স্থাপন ক্লিক করুন।
  4. ইনস্টল করুন > সম্পন্ন ক্লিক করুন।
  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"
          }
        }
      ]
    }
  }
}

কোড.জিএস

সমাধান/অ্যাড-অন/বুক-স্মার্টচিপ/কোড.জেএস
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();
  }
}