สร้างส่วนเสริม Google Workspace ใน Cloud Functions โดยใช้รันไทม์ Node.js
วัตถุประสงค์
- ตั้งค่าสภาพแวดล้อมของคุณ
- สร้างและทำให้ Cloud Function ใช้งานได้
- สร้างและทำให้ส่วนเสริมใช้งานได้
- ติดตั้งส่วนเสริม
ข้อกำหนดเบื้องต้น
- โปรเจ็กต์ Google Cloud
- ตรวจสอบว่าคุณเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูข้อมูล ฮาวทู ยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์
- Cloud SDK ด้วยโปรเจ็กต์ที่อยู่ในระบบคลาวด์
ตั้งค่าสภาพแวดล้อมของคุณ
เปิดโปรเจ็กต์ที่อยู่ในระบบคลาวด์ในคอนโซล Google Cloud
- ในคอนโซล Google Cloud ให้ไปที่หน้าเลือกโปรเจ็กต์
- เลือกโปรเจ็กต์ Google Cloud ที่ต้องการใช้ หรือคลิกสร้างโปรเจ็กต์แล้วทำตามวิธีการบนหน้าจอ หากสร้างโปรเจ็กต์ Google Cloud คุณอาจต้องเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์
กำหนดค่าหน้าจอขอความยินยอม OAuth
ส่วนเสริมของ Google Workspace ต้องมีการกำหนดค่าหน้าจอขอความยินยอม กำลังกำหนดค่า หน้าจอคำยินยอม OAuth ของส่วนเสริมจะระบุสิ่งที่ Google แสดงต่อผู้ใช้
- ในคอนโซล Google Cloud ให้ไปที่เมนู > API และ บริการ > หน้าจอขอความยินยอม OAuth
- เลือกประเภทผู้ใช้เป็นภายใน แล้วคลิกสร้าง
- กรอกแบบฟอร์มการลงทะเบียนแอป แล้วคลิกบันทึกและดำเนินการต่อ
ในตอนนี้ คุณสามารถข้ามการเพิ่มขอบเขต แล้วคลิกบันทึกและดำเนินการต่อได้ ในอนาคต เมื่อคุณสร้างแอปสำหรับใช้นอก ในองค์กร Google Workspace คุณต้องเปลี่ยนประเภทผู้ใช้เป็นภายนอก จากนั้น เพิ่มขอบเขตการให้สิทธิ์ที่แอปของคุณต้องการ
- ตรวจสอบสรุปการลงทะเบียนแอป หากต้องการเปลี่ยนแปลง ให้คลิกแก้ไข หากแอป การลงทะเบียนถูกต้องแล้ว ให้คลิกกลับไปที่หน้าแดชบอร์ด
สร้างและทำให้ Cloud Function ใช้งานได้
ในเทอร์มินัลภายใน ให้เปิด Cloud Functions, Cloud Build และ API ส่วนเสริมของ Google Workspace:
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
เพื่อหลีกเลี่ยงการเรียกเก็บเงินสำหรับทรัพยากรที่ใช้ในการเริ่มต้นอย่างรวดเร็วนี้ ให้ลบ โปรเจ็กต์ที่อยู่ในระบบคลาวด์
gcloud projects delete PROJECT_ID
แทนที่ PROJECT_ID ด้วยรหัสของโปรเจ็กต์ระบบคลาวด์ที่ ที่คุณใช้สำหรับการเริ่มต้นอย่างรวดเร็ว คุณจะดูรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ได้ใน Google Cloud Console ใน หน้าแดชบอร์ด
ขั้นตอนถัดไป
หากต้องการเพิ่มฟังก์ชันในส่วนเสริมของ Google Workspace โปรดไปที่ คำแนะนำต่อไปนี้