สร้างส่วนเสริมของ Google Workspace ใน Cloud Functions โดยใช้รันไทม์ Node.js
วัตถุประสงค์
- ตั้งค่าสภาพแวดล้อม
- สร้างและทำให้ Cloud Function ใช้งานได้
- สร้างและทำให้ส่วนเสริมใช้งานได้
- ติดตั้งส่วนเสริม
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าคุณเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ดูวิธียืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์
กำหนดค่า Cloud SDK กับโปรเจ็กต์ Cloud
ตั้งค่าสภาพแวดล้อม
เปิดโปรเจ็กต์ที่อยู่ในระบบคลาวด์ใน Google Cloud Console
- ในคอนโซล Google Cloud ให้ไปที่หน้าเลือกโปรเจ็กต์
- เลือกโปรเจ็กต์ Google Cloud ที่ต้องการใช้ หรือคลิกสร้างโปรเจ็กต์ แล้วทำตามวิธีการบนหน้าจอ หากสร้างโปรเจ็กต์ Google Cloud คุณอาจต้องเปิดการเรียกเก็บเงินสำหรับโปรเจ็กต์
กำหนดค่าหน้าจอขอความยินยอม OAuth
ส่วนเสริมของ Google Workspace ต้องมีการกําหนดค่าหน้าจอขอความยินยอม การกําหนดค่าหน้าจอขอความยินยอม OAuth ของส่วนเสริมจะกําหนดสิ่งที่ Google จะแสดงต่อผู้ใช้
- ในคอนโซล Google Cloud ให้ไปที่เมนู > > การสร้างแบรนด์
- หากกําหนดค่า แล้ว คุณจะกําหนดการตั้งค่าหน้าจอขอความยินยอม OAuth ต่อไปนี้ได้ในการสร้างแบรนด์ กลุ่มเป้าหมาย และการเข้าถึงข้อมูล หากเห็นข้อความว่า not configured yet ให้คลิกเริ่มต้นใช้งาน
- ในส่วนข้อมูลแอป ให้ป้อนชื่อแอปในส่วนชื่อแอป
- ในอีเมลสนับสนุนสำหรับผู้ใช้ ให้เลือกอีเมลทีมสนับสนุนที่ผู้ใช้สามารถติดต่อคุณได้หากมีข้อสงสัยเกี่ยวกับการยินยอม
- คลิกถัดไป
- เลือกภายในในส่วนผู้ชม
- คลิกถัดไป
- ในส่วนข้อมูลติดต่อ ให้ป้อนอีเมลที่คุณจะใช้รับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงในโปรเจ็กต์
- คลิกถัดไป
- ในส่วนเสร็จสิ้น ให้อ่านนโยบายข้อมูลผู้ใช้ของบริการ Google API และเลือกฉันยอมรับนโยบายข้อมูลผู้ใช้ของบริการ Google API หากยอมรับ
- คลิกต่อไป
- คลิกสร้าง
- ในระหว่างนี้ คุณสามารถข้ามการเพิ่มขอบเขตได้ ในอนาคต เมื่อคุณสร้างแอปเพื่อใช้งานนอกองค์กร Google Workspace คุณต้องเปลี่ยนประเภทผู้ใช้เป็นภายนอก จากนั้นเพิ่มขอบเขตการให้สิทธิ์ที่แอปของคุณต้องใช้ ดูข้อมูลเพิ่มเติมได้ที่คู่มือกำหนดค่าความยินยอม OAuth ฉบับเต็ม
สร้างและทำให้ Cloud Function ใช้งานได้
จากคอนโซล Google Cloud ให้คลิกเปิดใช้งาน Cloud Shell
เทอร์มินัล Cloud Shell จะเปิดขึ้นและเปิดเซสชันในแผงด้านล่างของคอนโซล Google Cloud
คลิกให้สิทธิ์เพื่อจัดสรรและเชื่อมต่อกับ Cloud Shell
ในเทอร์มินัล Cloud Shell ให้เปิด Cloud Functions API, Cloud Build API, Google Workspace Add-ons API และ Compute Engine API โดยทำดังนี้
gcloud services enable cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ gsuiteaddons.googleapis.com \ compute.googleapis.com
เปิดเครื่องมือแก้ไข Cloud Shell โดยคลิก
เปิดเครื่องมือแก้ไขในแถบเครื่องมือของหน้าต่าง Cloud Shell
เครื่องมือแก้ไขโค้ดในตัวนี้ช่วยให้คุณดูและแก้ไขไฟล์ได้สะดวกในสภาพแวดล้อมเดียวกับที่สร้างและติดตั้งใช้งานโปรเจ็กต์
ในไดเรกทอรีว่าง ให้สร้างไฟล์
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" } } ] } ] } } ] } }; }
ในไดเรกทอรีเดียวกัน ให้สร้างไฟล์
package.json
ด้วยโค้ดตัวอย่างต่อไปนี้{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
กลับไปที่เทอร์มินัล Cloud Shell โดยคลิก
เปิดเทอร์มินัล
เพิ่มบทบาท
Cloud Build Service Account
(roles/cloudbuild.builds.builder
) ลงในบัญชีบริการเริ่มต้นของ Compute Engineขั้นแรก ให้ตั้งค่าสิทธิ์ของบัญชีบริการ โดยทำดังนี้
export PROJECT_ID=$(gcloud config get project) export SERVICE_ACCOUNT_NAME=$(gcloud compute project-info describe \ --format="value(defaultServiceAccount)")
ขั้นตอนต่อไป ให้สิทธิ์บัญชีบริการที่ขาดหายไป โดยทำดังนี้
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_NAME" \ --role="roles/cloudbuild.builds.builder"
เรียกใช้คําสั่งต่อไปนี้เพื่อทําให้ฟังก์ชันทํางาน
gcloud functions deploy loadHomePage --runtime nodejs22 --trigger-http
หากได้รับข้อความแจ้ง ให้ระบุว่าคุณไม่อนุญาตให้เรียกใช้ฟังก์ชันโดยไม่ผ่านการตรวจสอบสิทธิ์ การทำให้ฟังก์ชันใช้งานได้อาจใช้เวลา 2-3 นาที
สร้างการทำให้ใช้งานได้ของส่วนเสริม
ค้นหาอีเมลบัญชีบริการของส่วนเสริม
gcloud workspace-add-ons get-authorization
มอบบทบาท
cloudfunctions.invoker
ให้กับบัญชีบริการ แทนที่ SERVICE_ACCOUNT_EMAIL ด้วยช่องserviceAccountEmail
จากขั้นตอนก่อนหน้าgcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
รับ URL ของฟังก์ชันที่ทําให้ใช้งานได้แล้ว หากต้องการดู URL ให้เรียกใช้คำสั่งต่อไปนี้และมองหาช่อง
url
ในส่วนhttpsTrigger
gcloud functions describe loadHomePage
กลับไปที่ Cloud Shell Editor โดยคลิก
Open Editor
ในไดเรกทอรีเดียวกับ
package.json
ให้สร้างไฟล์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": {} } }
กลับไปที่เทอร์มินัล Cloud Shell เพื่อสร้างการนําส่ง
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 ด้วยรหัสโปรเจ็กต์ในระบบคลาวด์ที่คุณใช้สำหรับการเริ่มต้นใช้งานอย่างรวดเร็ว คุณจะดูรหัสโปรเจ็กต์ Cloud ได้ในคอนโซล Google Cloud ในหน้าแดชบอร์ด
ขั้นตอนถัดไป
หากต้องการเพิ่มฟีเจอร์อื่นๆ ลงในส่วนเสริมของ Google Workspace โปรดดูข้อมูลต่อไปนี้
- สร้างส่วนเสริมของ Google Workspace โดยใช้ปลายทาง HTTP
- Codelab: สร้างส่วนเสริม Google Workspace ด้วย Node.js และ Cloud Run
- แสดงตัวอย่างลิงก์ด้วยชิปอัจฉริยะ