Node.js की मदद से, Google Workspace का ऐड-ऑन बनाना

Node.js रनटाइम का इस्तेमाल करके, Cloud Functions में Google Workspace ऐड-ऑन बनाएं.

मकसद

  • अपना एनवायरमेंट सेट अप करें.
  • Cloud Functions फ़ंक्शन बनाएं और उसे डिप्लॉय करें.
  • ऐड-ऑन बनाएं और उसे डिप्लॉय करें.
  • ऐड-ऑन इंस्टॉल करें.

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

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

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

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

    कोई क्लाउड प्रोजेक्ट चुनें

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

उस स्क्रीन को कॉन्फ़िगर करना जहां OAuth के लिए सहमति दी जाती है

Google Workspace ऐड-ऑन के लिए, सहमति वाली स्क्रीन को कॉन्फ़िगर करना ज़रूरी है. अपने ऐड-ऑन के लिए, उस स्क्रीन को कॉन्फ़िगर करने से यह तय होता है कि Google, उपयोगकर्ताओं को क्या दिखाएगा.

  1. Google Cloud Console में, मेन्यू > Google Auth platform > ब्रैंडिंग पर जाएं.

    ब्रैंडिंग पर जाएं

  2. अगर आपने पहले ही Google Auth platformको कॉन्फ़िगर कर लिया है, तो ब्रैंडिंग, दर्शक, और डेटा ऐक्सेस में जाकर, OAuth सहमति स्क्रीन की इन सेटिंग को कॉन्फ़िगर किया जा सकता है. अगर आपको Google Auth platform अभी तक कॉन्फ़िगर नहीं किया गया है मैसेज दिखता है, तो शुरू करें पर क्लिक करें:
    1. ऐप्लिकेशन की जानकारी में जाकर, ऐप्लिकेशन का नाम में ऐप्लिकेशन का नाम डालें.
    2. उपयोगकर्ता सहायता के लिए ईमेल पता में, सहायता के लिए वह ईमेल पता चुनें जिस पर उपयोगकर्ता, सहमति से जुड़े सवालों के लिए आपसे संपर्क कर सकें.
    3. आगे बढ़ें पर क्लिक करें.
    4. दर्शक सेक्शन में जाकर, संगठन के अंदर से जनरेट होने वाला ट्रैफ़िक चुनें.
    5. आगे बढ़ें पर क्लिक करें.
    6. संपर्क जानकारी में जाकर, वह ईमेल पता डालें जिस पर आपको अपने प्रोजेक्ट में हुए किसी भी बदलाव के बारे में सूचना मिल सके.
    7. आगे बढ़ें पर क्लिक करें.
    8. पूरा करें में जाकर, Google API सेवाओं के उपयोगकर्ता के डेटा की नीति पढ़ें. अगर आप इससे सहमत हैं, तो मैं Google API सेवाओं के उपयोगकर्ता के डेटा की नीति से सहमत हूं को चुनें.
    9. जारी रखें पर क्लिक करें.
    10. बनाएं पर क्लिक करें.
  3. फ़िलहाल, स्कोप जोड़ने की प्रोसेस को स्किप किया जा सकता है. अगर आपको आने वाले समय में, अपने Google Workspace संगठन के बाहर इस्तेमाल करने के लिए कोई ऐप्लिकेशन बनाना है, तो आपको उपयोगकर्ता का टाइप बदलकर बाहरी करना होगा. इसके बाद, अपने ऐप्लिकेशन के लिए ज़रूरी अनुमति के स्कोप जोड़ें. ज़्यादा जानने के लिए, OAuth की सहमति कॉन्फ़िगर करना गाइड पढ़ें.

Cloud Functions बनाना और उसे डिप्लॉय करना

  1. Google Cloud Console में, Cloud Shell चालू करें Cloud Shell बटन चालू करना पर क्लिक करें.

    Cloud Shell चालू करें

    Cloud Shell टर्मिनल खुलता है और Google Cloud Console के सबसे नीचे वाले पैन में एक सेशन लॉन्च करता है.

  2. Cloud Shell को चालू करने और उससे कनेक्ट करने के लिए, अनुमति दें पर क्लिक करें.

  3. Cloud Shell टर्मिनल में, Cloud Functions API, Cloud Build API, Google Workspace add-ons API, और Compute Engine API चालू करें:

    gcloud services enable cloudfunctions.googleapis.com  \
                        cloudbuild.googleapis.com  \
                        gsuiteaddons.googleapis.com  \
                        compute.googleapis.com
    
  4. Cloud Shell विंडो के टूलबार पर मौजूद, कोड एडिटर
बटन एडिटर खोलें पर क्लिक करके Cloud Shell Editor लॉन्च करें.

    यह बिल्ट-इन कोड एडिटर, फ़ाइलों को देखने और उनमें बदलाव करने की सुविधा देता है. ऐसा उसी एनवायरमेंट में किया जा सकता है जहां प्रोजेक्ट बनाए और डिप्लॉय किए जाते हैं.

  5. खाली डायरेक्ट्री में, function.js फ़ाइल बनाएं. इसमें यह सैंपल कोड डालें:

    /**
     * Cloud 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  6. उसी डायरेक्ट्री में, package.json फ़ाइल बनाएं और उसमें यहां दिया गया सैंपल कोड डालें:

    {
      "dependencies": {
        "@google-cloud/functions-framework": "^3.0.0"
      }
    }
    
  7. Cloud Shell चालू करें
बटन टर्मिनल खोलें पर क्लिक करके, Cloud Shell टर्मिनल पर वापस जाएं.

  8. Compute Engine के डिफ़ॉल्ट सेवा खाते में 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"
    
  9. फ़ंक्शन को डिप्लॉय करने के लिए, यह कमांड चलाएं:

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

    अगर आपसे पूछा जाता है, तो बताएं कि आपको फ़ंक्शन को बिना पुष्टि किए कॉल करने की अनुमति नहीं देनी है. इस फ़ंक्शन को डिप्लॉय होने में कुछ मिनट लग सकते हैं.

ऐड-ऑन डिप्लॉयमेंट बनाना

  1. ऐड-ऑन के लिए सेवा खाते का ईमेल पता ढूंढें:

    gcloud workspace-add-ons get-authorization
    
  2. सेवा खाते को cloudfunctions.invoker भूमिका असाइन करें. पिछले चरण में मौजूद serviceAccountEmail फ़ील्ड की वैल्यू को SERVICE_ACCOUNT_EMAIL की जगह डालें.

    gcloud functions add-iam-policy-binding loadHomePage \
       --role roles/cloudfunctions.invoker \
       --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. डिप्लॉय किए गए फ़ंक्शन का यूआरएल पाएं. यूआरएल पाने के लिए, यहां दिया गया निर्देश चलाएं. इसके बाद, httpsTrigger सेक्शन में जाकर url फ़ील्ड ढूंढें:

    gcloud functions describe loadHomePage
    
  4. कोड एडिटर
बटन एडिटर खोलें पर क्लिक करके, Cloud Shell Editor पर वापस जाएं.

  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. डिप्लॉयमेंट बनाने के लिए, Cloud Shell टर्मिनल पर वापस जाएं:

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

ऐड-ऑन इंस्टॉल करने का तरीका

  1. डेवलपमेंट मोड में डिप्लॉयमेंट इंस्टॉल करें:

    gcloud workspace-add-ons deployments install quickstart
    
  2. ऐड-ऑन देखने के लिए, Gmail खोलें या फिर से लोड करें. दाईं ओर मौजूद टूलबार में, बीकर आइकॉन ढूंढें.

  3. ऐड-ऑन खोलने के लिए, आइकॉन पर क्लिक करें. अगर कहा जाए, तो ऐड-ऑन को अनुमति दें.

ज़रूरी नहीं: साफ़ करना

अपने खाते पर शुल्क लगने से रोकने के लिए, बनाए गए संसाधन मिटाएं:

  1. अपने Google खाते से ऐड-ऑन अनइंस्टॉल करें:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. क्विकस्टार्ट में इस्तेमाल किए गए संसाधनों के लिए शुल्क से बचने के लिए, Cloud प्रोजेक्ट मिटाएं:

    gcloud projects delete PROJECT_ID
    

    PROJECT_ID की जगह उस Cloud प्रोजेक्ट का आईडी डालें जिसका इस्तेमाल आपने क्विकस्टार्ट के लिए किया था. Google Cloud Console में, डैशबोर्ड पेज पर जाकर Cloud प्रोजेक्ट आईडी देखा जा सकता है.

अपने Google Workspace ऐड-ऑन में ज़्यादा सुविधाएं जोड़ने के लिए, यह लेख पढ़ें: