สร้างส่วนเสริมของ 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 ให้ไปที่เมนู > > การสร้างแบรนด์

    ไปที่การสร้างแบรนด์

  2. หากกําหนดค่า แล้ว คุณจะกําหนดการตั้งค่าหน้าจอขอความยินยอม OAuth ต่อไปนี้ได้ในการสร้างแบรนด์ กลุ่มเป้าหมาย และการเข้าถึงข้อมูล หากเห็นข้อความว่า not configured yet ให้คลิกเริ่มต้นใช้งาน
    1. ในส่วนข้อมูลแอป ให้ป้อนชื่อแอปในส่วนชื่อแอป
    2. ในอีเมลสนับสนุนสำหรับผู้ใช้ ให้เลือกอีเมลทีมสนับสนุนที่ผู้ใช้สามารถติดต่อคุณได้หากมีข้อสงสัยเกี่ยวกับการยินยอม
    3. คลิกถัดไป
    4. เลือกภายในในส่วนผู้ชม
    5. คลิกถัดไป
    6. ในส่วนข้อมูลติดต่อ ให้ป้อนอีเมลที่คุณจะใช้รับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงในโปรเจ็กต์
    7. คลิกถัดไป
    8. ในส่วนเสร็จสิ้น ให้อ่านนโยบายข้อมูลผู้ใช้ของบริการ Google API และเลือกฉันยอมรับนโยบายข้อมูลผู้ใช้ของบริการ Google API หากยอมรับ
    9. คลิกต่อไป
    10. คลิกสร้าง
  3. ในระหว่างนี้ คุณสามารถข้ามการเพิ่มขอบเขตได้ ในอนาคต เมื่อคุณสร้างแอปเพื่อใช้งานนอกองค์กร Google Workspace คุณต้องเปลี่ยนประเภทผู้ใช้เป็นภายนอก จากนั้นเพิ่มขอบเขตการให้สิทธิ์ที่แอปของคุณต้องใช้ ดูข้อมูลเพิ่มเติมได้ที่คู่มือกำหนดค่าความยินยอม OAuth ฉบับเต็ม

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

    gcloud projects delete PROJECT_ID
    

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

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

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