פיתוח תוסף ל-Google Workspace באמצעות Node.js

יצירת תוספים ל-Google Workspace ב-Cloud Functions באמצעות סביבת זמן הריצה של Node.js.

מטרות

  • מגדירים את הסביבה.
  • יוצרים פונקציה ב-Cloud Functions ופורסים אותה.
  • יוצרים את התוסף ופורסים אותו.
  • מתקינים את התוסף.

דרישות מוקדמות

הגדרת הסביבה

פותחים את פרויקט Cloud במסוף Google Cloud

  1. נכנסים לדף Select a project במסוף Google Cloud.

    בחירת פרויקט ב-Cloud

  2. בוחרים את הפרויקט ב-Google Cloud שבו רוצים להשתמש. לחלופין, לוחצים על Create project (יצירת פרויקט) ופועלים לפי ההוראות במסך. אם יוצרים פרויקט ב-Google Cloud, יכול להיות שתצטרכו להפעיל את החיוב בפרויקט.

הגדרת מסך ההסכמה של OAuth

כדי להשתמש בתוספים של Google Workspace, צריך להגדיר מסך הסכמה. הגדרת מסך ההסכמה ל-OAuth של התוסף קובעת מה Google תציג למשתמשים.

  1. במסוף Google Cloud, נכנסים לתפריט > APIs & Services > OAuth consent screen.

    מעבר למסך ההסכמה של OAuth

  2. בקטע User type בוחרים באפשרות Internal ולוחצים על Create.
  3. ממלאים את טופס הרישום של האפליקציה ולוחצים על שמירה והמשך.
  4. בשלב הזה, אפשר לדלג על הוספת היקפי הרשאה וללחוץ על Save and Continue (שמירה והמשך). בעתיד, כשיוצרים אפליקציה לשימוש מחוץ לארגון ב-Google Workspace, צריך לשנות את סוג המשתמש ל-חיצוני, ואז להוסיף את היקפי ההרשאה הנדרשים לאפליקציה.

  5. בודקים את סיכום רישום האפליקציה. כדי לבצע שינויים, לוחצים על עריכה. אם הרשמת האפליקציה נראית תקינה, לוחצים על Back to Dashboard.

יצירה ופריסה של פונקציה ב-Cloud Functions

  1. במסוף מקומי, מפעילים את Cloud Functions,‏ Cloud Build ו-Google Workspace add-ons API:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. בתיקייה ריקה, יוצרים את הקובץ 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. פורסים את הפונקציה:

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

    אם מתבקשים, מציינים שאתם לא מאפשרים הפעלות לא מאומתות של הפונקציה. יכול להיות שיחלפו כמה דקות עד שהפונקציה תוצג.

יצירת פריסה של תוסף

  1. מוצאים את כתובת האימייל של חשבון השירות של התוסף:

    gcloud workspace-add-ons get-authorization
    
  2. מקצים לחשבון השירות את התפקיד cloudfunctions.invoker:

    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. יוצרים את הקובץ 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": {}
      }
    }
    
  5. יוצרים את הפריסה:

    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 שבו השתמשתם במדריך למתחילים. מזהה פרויקט Cloud מופיע במסוף Google Cloud בדף Dashboard.

השלבים הבאים

כדי להוסיף פונקציונליות לתוסף שלכם ל-Google Workspace, תוכלו להיעזר במדריכים הבאים: