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

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

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

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

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

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

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

  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 และ API ส่วนเสริมของ Google Workspace:

    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. เพื่อหลีกเลี่ยงการเรียกเก็บเงินสำหรับทรัพยากรที่ใช้ในการเริ่มต้นอย่างรวดเร็วนี้ ให้ลบ โปรเจ็กต์ที่อยู่ในระบบคลาวด์

    gcloud projects delete PROJECT_ID
    

    แทนที่ PROJECT_ID ด้วยรหัสของโปรเจ็กต์ระบบคลาวด์ที่ ที่คุณใช้สำหรับการเริ่มต้นอย่างรวดเร็ว คุณจะดูรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ได้ใน Google Cloud Console ใน หน้าแดชบอร์ด

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

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