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