สร้างส่วนเสริมของ Google Workspace ด้วย Node.js

สร้างส่วนเสริม Google Workspace ใน Cloud Functions โดยใช้รันไทม์ Node.js

วัตถุประสงค์

  • ตั้งค่าสภาพแวดล้อม
  • สร้างและทำให้ Cloud Function ใช้งานได้
  • สร้างและติดตั้งใช้งานส่วนเสริม
  • ติดตั้งส่วนเสริม

ข้อกำหนดเบื้องต้น

ตั้งค่าสภาพแวดล้อม

เปิดโปรเจ็กต์ Cloud ใน Google Cloud Console

  1. ไปที่หน้าเลือกโปรเจ็กต์ใน Google Cloud Console

    เลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์

  2. เลือกโปรเจ็กต์ Google Cloud ที่ต้องการใช้ หรือคลิกสร้างโปรเจ็กต์ แล้วทำตามวิธีการบนหน้าจอ หากสร้างโปรเจ็กต์ Google Cloud คุณอาจต้องเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์

กำหนดค่าหน้าจอขอความยินยอม OAuth

ส่วนเสริมของ Google Workspace ต้องมีการกำหนดค่าหน้าจอขอความยินยอม การกำหนดค่าหน้าจอขอความยินยอม OAuth ของส่วนเสริม จะกำหนดสิ่งที่ Google แสดงต่อผู้ใช้

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > 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 Function ใช้งานได้

  1. จากคอนโซล Google Cloud ให้คลิกเปิดใช้งาน Cloud Shell ปุ่มเปิดใช้งาน Cloud Shell

    เปิดใช้งาน Cloud Shell

    เทอร์มินัล Cloud Shell จะเปิดขึ้นและเริ่มเซสชันในบานหน้าต่างด้านล่างของคอนโซล Google Cloud

  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 Editor โดยคลิก ตัวแก้ไขโค้ด
ปุ่ม Open 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
    

    หากได้รับแจ้ง ให้ระบุว่าคุณไม่อนุญาตการเรียกใช้ฟังก์ชันที่ไม่ผ่านการตรวจสอบสิทธิ์ การทำให้ฟังก์ชันใช้งานได้อาจใช้เวลา 2-3 นาที

สร้างการทำให้ใช้งานได้ของส่วนเสริม

  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. กลับไปที่ Cloud Shell Editor โดยคลิก ตัวแก้ไขโค้ด
ปุ่ม Open 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 ที่คุณใช้สำหรับการเริ่มต้นอย่างรวดเร็ว คุณจะหารหัสโปรเจ็กต์ Cloud ได้ในคอนโซล Google Cloud ในหน้าแดชบอร์ด

หากต้องการเพิ่มฟีเจอร์อื่นๆ ลงในส่วนเสริม Google Workspace โปรดดูข้อมูลต่อไปนี้