Node.js-এর সাহায্যে একটি Google Workspace অ্যাড-অন তৈরি করুন

Node.js রানটাইম ব্যবহার করে ক্লাউড রান ফাংশনে গুগল ওয়ার্কস্পেস অ্যাড-অন তৈরি করুন।

উদ্দেশ্য

  • আপনার পরিবেশ প্রস্তুত করুন।
  • একটি ক্লাউড রান ফাংশন তৈরি ও স্থাপন করুন।
  • অ্যাড-অনটি তৈরি ও স্থাপন করুন।
  • অ্যাড-অনটি ইনস্টল করুন।

পূর্বশর্ত

আপনার পরিবেশ তৈরি করুন

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

  1. গুগল ক্লাউড কনসোলে, 'Select a project' পেজে যান।

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

  2. আপনি যে গুগল ক্লাউড প্রজেক্টটি ব্যবহার করতে চান, সেটি নির্বাচন করুন। অথবা, 'Create project'-এ ক্লিক করুন এবং স্ক্রিনে দেওয়া নির্দেশাবলী অনুসরণ করুন। আপনি যদি একটি গুগল ক্লাউড প্রজেক্ট তৈরি করেন, তাহলে প্রজেক্টটির জন্য বিলিং চালু করার প্রয়োজন হতে পারে।

OAuth সম্মতি স্ক্রিন কনফিগার করুন

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

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ব্র্যান্ডিং- এ যান।

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

  2. আপনি যদি ইতিমধ্যেই Google Auth প্ল্যাটফর্মটি কনফিগার করে থাকেন, তাহলে আপনি Branding , Audience , এবং Data Access- এ নিম্নলিখিত OAuth Consent Screen সেটিংস কনফিগার করতে পারেন। যদি আপনি এমন কোনো বার্তা দেখতে পান যেখানে লেখা আছে ‘Google Auth প্ল্যাটফর্ম এখনও কনফিগার করা হয়নি’ , তাহলে Get Started-এ ক্লিক করুন:
    1. 'অ্যাপ ইনফরমেশন'- এর অধীনে 'অ্যাপ নেম' -এ অ্যাপটির জন্য একটি নাম লিখুন।
    2. ব্যবহারকারী সহায়তা ইমেল- এ, এমন একটি সহায়তা ইমেল ঠিকানা বেছে নিন যেখানে ব্যবহারকারীরা তাদের সম্মতি সম্পর্কে কোনো প্রশ্ন থাকলে আপনার সাথে যোগাযোগ করতে পারে।
    3. পরবর্তী ধাপে যান।
    4. Audience-এর অধীনে Internal নির্বাচন করুন।
    5. পরবর্তী ধাপে যান।
    6. যোগাযোগের তথ্যের অধীনে, একটি ইমেল ঠিকানা লিখুন যেখানে আপনার প্রকল্পের যেকোনো পরিবর্তন সম্পর্কে আপনাকে জানানো যাবে।
    7. পরবর্তী ধাপে যান।
    8. Finish-এর অধীনে, Google API Services ব্যবহারকারীর ডেটা নীতি পর্যালোচনা করুন এবং যদি আপনি সম্মত হন, তাহলে I agree to the Google API Services: User Data Policy নির্বাচন করুন।
    9. চালিয়ে যান-এ ক্লিক করুন।
    10. তৈরি করুন- এ ক্লিক করুন।
  3. আপাতত, আপনি স্কোপ যোগ করা এড়িয়ে যেতে পারেন। ভবিষ্যতে, যখন আপনি আপনার Google Workspace অর্গানাইজেশনের বাইরে ব্যবহারের জন্য কোনো অ্যাপ তৈরি করবেন, তখন আপনাকে অবশ্যই ইউজার টাইপ (User type) পরিবর্তন করে এক্সটার্নাল (External ) করতে হবে। এরপর আপনার অ্যাপের জন্য প্রয়োজনীয় অথরাইজেশন স্কোপগুলো যোগ করুন। আরও জানতে, সম্পূর্ণ ‘Configure OAuth consent’ গাইডটি দেখুন।

একটি ক্লাউড রান ফাংশন তৈরি এবং স্থাপন করুন

  1. ক্লাউড শেল প্রোভিশন ও কানেক্ট করতে অথরাইজ- এ ক্লিক করুন।

  2. ক্লাউড শেল টার্মিনালে, ক্লাউড রান ফাংশনস এপিআই, ক্লাউড বিল্ড এপিআই, গুগল ওয়ার্কস্পেস অ্যাড-অনস এপিআই, কম্পিউট ইঞ্জিন এপিআই, এবং ক্লাউড রান এপিআই চালু করুন:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com  \
                        run.googleapis.com
    
  3. ক্লিক করে ক্লাউড শেল এডিটর চালু করুন কোড সম্পাদক বোতাম ক্লাউড শেল উইন্ডোর টুলবারে এডিটর খুলুন

    এই অন্তর্নির্মিত কোড এডিটরটি সেই একই পরিবেশে ফাইল দেখা ও সম্পাদনা করার সুবিধা প্রদান করে, যেখানে প্রোজেক্ট তৈরি এবং স্থাপন করা হয়।

  4. খালি ডিরেক্টরিতে, নিম্নলিখিত নমুনা কোড সহ function.js ফাইলটি তৈরি করুন:

    /**
     * Cloud Run function that loads the homepage for a
     * Google Workspace add-on.
     *
     * @param {Object} req Request sent from Google
     * @param {Object} res Response to send back
     */
    exports.loadHomePage = function addonsHomePage (req, res) {
      res.send(createAction());
    };
    
    /** Creates a card with two widgets. */
    function createAction() {
      return {
        "action": {
          "navigations": [
            {
              "pushCard": {
                "header": {
                  "title": "Cats!"
                },
                "sections": [
                  {
                    "widgets": [
                      {
                        "textParagraph": {
                          "text": "Your random cat:"
                        }
                      },
                      {
                        "image": {
                          "imageUrl": "https://cataas.com/cat"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  5. একই ডিরেক্টরিতে, নিম্নলিখিত নমুনা কোড সহ package.json ফাইলটি তৈরি করুন:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  6. ক্লিক করে ক্লাউড শেল টার্মিনালে ফিরে যান ক্লাউড শেল সক্রিয় করুন বোতাম টার্মিনাল খুলুন

  7. কম্পিউট ইঞ্জিনের ডিফল্ট সার্ভিস অ্যাকাউন্টে Cloud Build Service Account রোল ( roles/cloudbuild.builds.builder ) যোগ করুন।

    প্রথমে, পরিষেবা অ্যাকাউন্টের অনুমতি সেটআপ করুন:

    export PROJECT_ID=$(gcloud config get project)
    export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \
      --format="value(defaultServiceAccount)")
    

    এরপর, অনুপস্থিত সার্ভিস অ্যাকাউন্টটিকে অনুমতি দিন:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \
      --role="roles/cloudbuild.builds.builder"
    
  8. ফাংশনটি ডিপ্লয় করতে নিম্নলিখিত কমান্ডটি চালান:

    gcloud run deploy loadHomePage --runtime nodejs22 --trigger-http
    

    অনুরোধ করা হলে, উল্লেখ করুন যে আপনি প্রমাণীকরণবিহীনভাবে ফাংশনটি ব্যবহারের অনুমতি দেন না। ফাংশনটি ডেপ্লয় হতে কয়েক মিনিট সময় লাগতে পারে।

একটি অ্যাড-অন ডেপ্লয়মেন্ট তৈরি করুন

  1. অ্যাড-অনটির জন্য সার্ভিস অ্যাকাউন্টের ইমেলটি খুঁজুন:

    gcloud workspace-add-ons get-authorization
    
  2. সার্ভিস অ্যাকাউন্টটিকে cloudfunctions.invoker রোলটি প্রদান করুন। SERVICE_ACCOUNT_EMAIL জায়গায় পূর্ববর্তী ধাপের serviceAccountEmail ফিল্ডটি বসান।

    gcloud run services add-iam-policy-binding loadHomePage \
        --role roles/roles/run.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. ডিপ্লয় করা ফাংশনের URL-টি নিন। URL-টি পেতে, নিচের কমান্ডটি চালান এবং httpsTrigger সেকশনের অধীনে url ফিল্ডটি দেখুন:

    gcloud run services describe loadHomePage
    
  4. ক্লিক করে ক্লাউড শেল এডিটরে ফিরে যান কোড সম্পাদক বোতাম এডিটর খুলুন

  5. package.json ফাইলটি যে ডিরেক্টরিতে আছে, সেই একই ডিরেক্টরিতে deployment.json নামে একটি ফাইল তৈরি করুন এবং নিচের নমুনা কোডটি দিন। URL জায়গায় আগের ধাপে ডিপ্লয় করা ফাংশনের url বসান।

    {
      "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"],
      "addOns": {
        "common": {
          "name": "My HTTP Add-on",
          "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png",
          "homepageTrigger": {
            "runFunction": "URL"
          }
        },
        "gmail": {},
        "drive": {},
        "calendar": {},
        "docs": {},
        "sheets": {},
        "slides": {},
        "httpOptions": {
          "granularOauthPermissionSupport": "OPT_IN"
        }
      }
    }
    
  6. ডিপ্লয়মেন্ট তৈরি করতে ক্লাউড শেল টার্মিনালে ফিরে যান:

    gcloud workspace-add-ons deployments create quickstart \
        --deployment-file=deployment.json
    

অ্যাড-অনটি ইনস্টল করুন

  1. ডেভেলপমেন্ট মোডে ডেপ্লয়মেন্টটি ইনস্টল করুন:

    gcloud workspace-add-ons deployments install quickstart
    
  2. অ্যাড-অনটি দেখতে Gmail খুলুন বা রিলোড করুন। ডানদিকের টুলবারে একটি বিকার আইকন খুঁজুন।

  3. অ্যাড-অনটি খোলার জন্য আইকনটিতে ক্লিক করুন। অনুরোধ করা হলে, অ্যাড-অনটির অনুমোদন দিন।

ঐচ্ছিক: পরিষ্কার করা

চার্জ এড়াতে, আপনার তৈরি করা রিসোর্সগুলো মুছে ফেলুন:

  1. আপনার গুগল অ্যাকাউন্ট থেকে অ্যাড-অনটি আনইনস্টল করুন:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. এই কুইকস্টার্টে ব্যবহৃত রিসোর্সের জন্য চার্জ এড়াতে, ক্লাউড প্রজেক্টটি ডিলিট করুন:

    gcloud projects delete PROJECT_ID
    

    PROJECT_ID জায়গায় সেই ক্লাউড প্রজেক্টের আইডিটি বসান যা আপনি কুইকস্টার্টের জন্য ব্যবহার করেছেন। আপনি গুগল এপিআই কনসোলের ড্যাশবোর্ড পেজে ক্লাউড প্রজেক্ট আইডিটি খুঁজে পাবেন।

আপনার গুগল ওয়ার্কস্পেস অ্যাড-অনে আরও ফিচার যোগ করতে, নিম্নলিখিত বিষয়গুলো দেখুন: