با Node.js یک افزونه Google Workspace بسازید

با استفاده از زمان اجرا Node.js افزونه های Google Workspace را در توابع ابری ایجاد کنید.

اهداف

  • محیط خود را تنظیم کنید.
  • ایجاد و استقرار یک تابع ابری.
  • افزونه را ایجاد و اجرا کنید.
  • افزونه را نصب کنید.

پیش نیازها

محیط خود را تنظیم کنید

پروژه Cloud خود را در کنسول Google Cloud باز کنید

  1. در کنسول Google Cloud، به صفحه انتخاب پروژه بروید.

    یک پروژه Cloud را انتخاب کنید

  2. پروژه Google Cloud را که می خواهید استفاده کنید انتخاب کنید. یا روی ایجاد پروژه کلیک کنید و دستورالعمل های روی صفحه را دنبال کنید. اگر یک پروژه Google Cloud ایجاد می‌کنید، ممکن است لازم باشد صورت‌حساب پروژه را روشن کنید .

صفحه رضایت OAuth را پیکربندی کنید

افزونه‌های Google Workspace به پیکربندی صفحه رضایت نیاز دارند. پیکربندی صفحه رضایت OAuth افزونه شما، آنچه را که Google برای کاربران نمایش می‌دهد مشخص می‌کند.

  1. در کنسول Google Cloud، به > بروید > برندسازی

    به برندینگ بروید

  2. اگر قبلاً آن را پیکربندی کرده اید ، می توانید تنظیمات صفحه رضایت OAuth زیر را در نام تجاری ، مخاطب و دسترسی به داده پیکربندی کنید. اگر پیامی دیدید که می گوید هنوز پیکربندی نشده است ، روی شروع کلیک کنید:
    1. در قسمت اطلاعات برنامه ، در نام برنامه ، نامی برای برنامه وارد کنید.
    2. در ایمیل پشتیبانی کاربر ، آدرس ایمیل پشتیبانی را انتخاب کنید که در صورت داشتن رضایت، کاربران بتوانند با شما تماس بگیرند.
    3. روی Next کلیک کنید.
    4. در قسمت Audience ، Internal را انتخاب کنید.
    5. روی Next کلیک کنید.
    6. در قسمت اطلاعات تماس ، آدرس ایمیلی را وارد کنید که در آن می‌توانید از هرگونه تغییر در پروژه خود مطلع شوید.
    7. روی Next کلیک کنید.
    8. در قسمت پایان ، خط‌مشی داده‌های کاربر سرویس‌های API Google را مرور کنید و در صورت موافقت، من با خدمات Google API موافقم: خط‌مشی داده‌های کاربر را انتخاب کنید.
    9. روی Continue کلیک کنید.
    10. روی ایجاد کلیک کنید.
  3. در حال حاضر، می توانید از افزودن دامنه ها صرف نظر کنید. در آینده، وقتی برنامه‌ای را برای استفاده خارج از سازمان Google Workspace خود ایجاد می‌کنید، باید نوع کاربر را به خارجی تغییر دهید. سپس محدوده های مجوز مورد نیاز برنامه خود را اضافه کنید. برای کسب اطلاعات بیشتر، راهنمای کامل Configure OAuth رضایت را ببینید.

ایجاد و استقرار یک تابع ابری

  1. از کنسول Google Cloud، روی Activate Cloud Shell کلیک کنید Cloud را فعال کنید دکمه پوسته .

    Cloud Shell را فعال کنید

    ترمینال Cloud Shell جلسه ای را در قسمت پایینی کنسول Google Cloud باز می کند و راه اندازی می کند.

  2. برای تهیه و اتصال به Cloud Shell روی Authorize کلیک کنید.

  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 Editor را با کلیک کردن اجرا کنیدویرایشگر کد دکمه ویرایشگر را در نوار ابزار پنجره Cloud Shell باز کنید .

    این ویرایشگر کد داخلی، راحتی مشاهده و ویرایش فایل‌ها را در همان محیطی که پروژه‌ها ساخته و اجرا می‌شوند، فراهم می‌کند.

  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. نقش Cloud Build Service Account ( roles/cloudbuild.builds.builder ) را به حساب خدمات پیش فرض Compute Engine اضافه کنید.

    ابتدا مجوز حساب سرویس را تنظیم کنید:

    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 اعطا کنید. SERVICE_ACCOUNT_EMAIL با قسمت serviceAccountEmail از مرحله قبل جایگزین کنید.

    gcloud functions add-iam-policy-binding loadHomePage \
       --role roles/cloudfunctions.invoker \
       --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. URL تابع مستقر شده را دریافت کنید. برای دریافت URL، دستور زیر را اجرا کنید و قسمت url را در قسمت httpsTrigger جستجو کنید:

    gcloud functions 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. برای ایجاد استقرار به ترمینال 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
    

    شناسه پروژه Cloud را که برای شروع سریع استفاده کردید، جایگزین PROJECT_ID کنید. می‌توانید شناسه پروژه Cloud را در کنسول Google Cloud در صفحه داشبورد پیدا کنید.

برای افزودن ویژگی‌های بیشتر به افزونه Google Workspace خود، به موارد زیر مراجعه کنید: