สร้างส่วนเสริมของ 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 บนหน้าแดชบอร์ด

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

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