สร้างส่วนเสริมของ Google Workspace ใน Cloud Functions โดยใช้รันไทม์ Node.js
วัตถุประสงค์
- ตั้งค่าสภาพแวดล้อม
- สร้างและทำให้ Cloud Function ใช้งานได้
- สร้างและทำให้ส่วนเสริมใช้งานได้
- ติดตั้งส่วนเสริม
ข้อกำหนดเบื้องต้น
- โปรเจ็กต์ Google Cloud
- ตรวจสอบว่าคุณเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธียืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์
- Cloud SDK ได้รับการกําหนดค่ากับโปรเจ็กต์ Cloud
ตั้งค่าสภาพแวดล้อม
เปิดโปรเจ็กต์ที่อยู่ในระบบคลาวด์ใน Google Cloud Console
- ในคอนโซล Google Cloud ให้ไปที่หน้าเลือกโปรเจ็กต์
- เลือกโปรเจ็กต์ Google Cloud ที่ต้องการใช้ หรือคลิกสร้างโปรเจ็กต์ แล้วทำตามวิธีการบนหน้าจอ หากสร้างโปรเจ็กต์ Google Cloud คุณอาจต้องเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์
กำหนดค่าหน้าจอขอความยินยอม OAuth
ส่วนเสริมของ Google Workspace ต้องมีการกําหนดค่าหน้าจอขอความยินยอม การกำหนดค่าหน้าจอขอความยินยอม OAuth ของส่วนเสริมจะกำหนดสิ่งที่ Google จะแสดงต่อผู้ใช้
- ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > หน้าจอขอความยินยอม OAuth
- เลือกประเภทผู้ใช้เป็นภายใน แล้วคลิกสร้าง
- กรอกแบบฟอร์มการลงทะเบียนแอปให้สมบูรณ์ แล้วคลิกบันทึกและดำเนินการต่อ
ในระหว่างนี้ คุณสามารถข้ามการเพิ่มขอบเขตและคลิกบันทึกและดำเนินการต่อ ในอนาคต เมื่อคุณสร้างแอปเพื่อใช้งานนอกองค์กร Google Workspace คุณต้องเปลี่ยนประเภทผู้ใช้เป็นภายนอก จากนั้นเพิ่มขอบเขตการให้สิทธิ์ที่จําเป็นสําหรับแอป
- ตรวจสอบข้อมูลสรุปการลงทะเบียนแอป หากต้องการเปลี่ยนแปลง ให้คลิกแก้ไข หากการลงทะเบียนแอปดูเรียบร้อยดี ให้คลิกกลับไปที่แดชบอร์ด
สร้างและทำให้ Cloud Function ใช้งานได้
ในเทอร์มินัลในเครื่อง ให้เปิด Cloud Functions, Cloud Build และ Google Workspace Add-ons API โดยทำดังนี้
gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
ในไดเรกทอรีว่าง ให้สร้างไฟล์
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" } } ] } ] } } ] } }; }
ทำให้ฟังก์ชันใช้งานได้โดยทำดังนี้
gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
หากได้รับข้อความแจ้ง ให้ระบุว่าคุณไม่อนุญาตให้เรียกใช้ฟังก์ชันโดยไม่ผ่านการตรวจสอบสิทธิ์ การทำให้ฟังก์ชันใช้งานได้อาจใช้เวลา 2-3 นาที
สร้างการทำให้ใช้งานได้ของส่วนเสริม
ค้นหาอีเมลบัญชีบริการของส่วนเสริม
gcloud workspace-add-ons get-authorization
มอบบทบาท
cloudfunctions.invoker
ให้กับบัญชีบริการgcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
รับ URL ของฟังก์ชันที่ทําให้ใช้งานได้แล้ว หากต้องการดู URL ให้เรียกใช้คำสั่งต่อไปนี้และมองหาช่อง
url
ในส่วนhttpsTrigger
gcloud functions describe loadHomePage
สร้างไฟล์
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": {} } }
สร้างการทำให้ใช้งานได้ โดยทำดังนี้
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
ติดตั้งส่วนเสริม
ติดตั้งการทำให้ใช้งานได้ในโหมดการพัฒนา
gcloud workspace-add-ons deployments install quickstart
เปิดหรือโหลด Gmail ซ้ำเพื่อดูส่วนเสริม ในแถบเครื่องมือทางด้านขวา ให้มองหาไอคอนบีกเกอร์
คลิกไอคอนเพื่อเปิดส่วนเสริม ให้สิทธิ์ส่วนเสริมหากได้รับข้อความแจ้ง
ไม่บังคับ: ล้าง
โปรดลบทรัพยากรที่คุณสร้างขึ้นเพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี
ถอดตัวเสริมออกจากบัญชี Google โดยทำดังนี้
gcloud workspace-add-ons deployments uninstall quickstart
โปรดลบโปรเจ็กต์ Cloud เพื่อหลีกเลี่ยงการเรียกเก็บเงินสำหรับทรัพยากรที่ใช้ในบทแนะนำเริ่มต้นใช้งานนี้
gcloud projects delete PROJECT_ID
แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ Cloud ที่คุณใช้สำหรับคู่มือเริ่มต้นใช้งาน คุณจะดูรหัสโปรเจ็กต์ Cloud ได้ในคอนโซล Google Cloud ในหน้าแดชบอร์ด
ขั้นตอนถัดไป
หากต้องการเพิ่มฟังก์ชันการทำงานอื่นๆ ลงในส่วนเสริม Google Workspace โปรดดูคำแนะนำต่อไปนี้