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

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

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

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

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

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

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

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

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

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

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

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

  1. ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > หน้าจอขอความยินยอม OAuth

    ไปที่หน้าจอขอความยินยอม OAuth

  2. เลือกประเภทผู้ใช้เป็นภายใน แล้วคลิกสร้าง
  3. กรอกแบบฟอร์มการลงทะเบียนแอปให้สมบูรณ์ แล้วคลิกบันทึกและดำเนินการต่อ
  4. ในระหว่างนี้ คุณสามารถข้ามการเพิ่มขอบเขตและคลิกบันทึกและดำเนินการต่อ ในอนาคต เมื่อคุณสร้างแอปเพื่อใช้งานนอกองค์กร Google Workspace คุณต้องเปลี่ยนประเภทผู้ใช้เป็นภายนอก จากนั้นเพิ่มขอบเขตการให้สิทธิ์ที่จําเป็นสําหรับแอป

  5. ตรวจสอบข้อมูลสรุปการลงทะเบียนแอป หากต้องการเปลี่ยนแปลง ให้คลิกแก้ไข หากการลงทะเบียนแอปดูเรียบร้อยดี ให้คลิกกลับไปที่แดชบอร์ด

สร้างและทำให้ Cloud Function ใช้งานได้

  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
    

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

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

  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 ในหน้าแดชบอร์ด

ขั้นตอนถัดไป

หากต้องการเพิ่มฟังก์ชันการทำงานอื่นๆ ลงในส่วนเสริม Google Workspace โปรดดูคำแนะนำต่อไปนี้