สร้างส่วนเสริม 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 บนหน้าแดชบอร์ด
ขั้นตอนถัดไป
หากต้องการเพิ่มฟังก์ชันไปยังส่วนเสริม Google Workspace โปรดทำตามคำแนะนำต่อไปนี้