เพิ่มศักยภาพให้กล่องจดหมาย Gmail ด้วยฟังก์ชันของ Google Cloud

1. บทนำ

ธุรกิจและบุคคลหลายพันล้านรายใช้ Gmail และบริการอื่นๆ ของ G Suite เพื่อสื่อสารและประมวลผลข้อมูล Google มี G Suite API เพื่อช่วยให้คุณเข้าถึงข้อมูลในบริการเหล่านี้แบบเป็นโปรแกรมได้ และคุณสามารถใช้ API เพื่อทำให้เวิร์กโฟลว์ประจำวันเป็นแบบอัตโนมัติได้อย่างง่ายดาย ใน Lab นี้ คุณจะได้สร้างส่วนขยาย Gmail ที่มีประสิทธิภาพซึ่งจะจัดหมวดหมู่อีเมลในข้อความขาเข้าโดยอัตโนมัติ และบันทึกหมวดหมู่เหล่านั้นในชีตของ Google ส่วนขยายนี้จะใช้ RESTful API ของ G Suite, Google Cloud Functions และบริการอื่นๆ ของ Google Cloud Platform

สิ่งที่คุณจะสร้าง

ในแล็บนี้ คุณจะได้สร้างและติดตั้งใช้งาน Cloud Functions 2-3 รายการที่เชื่อมต่อกับ G Suite API และบริการอื่นๆ ของ Google Cloud Platform ฟังก์ชันเหล่านี้จะทำสิ่งต่อไปนี้

  • ให้สิทธิ์เข้าถึงข้อมูล Gmail และ Google ชีตอย่างปลอดภัย
  • ดึงรูปภาพที่แนบมากับอีเมลขาเข้า
  • จัดหมวดหมู่รูปภาพเหล่านั้นโดยใช้ Cloud Vision API
  • เขียนหมวดหมู่ ที่อยู่ของผู้ส่ง และชื่อไฟล์แนบลงใน Google ชีต

สิ่งที่คุณจะได้เรียนรู้

  • พื้นฐานของ G Suite RESTful API
  • พื้นฐานของ Google Cloud Functions และบริการอื่นๆ ของ Google Cloud Platform
  • วิธีเข้าถึง Gmail โดยใช้โปรแกรมผ่าน Google Cloud Functions

สิ่งที่คุณต้องมี

  • บัญชี Google ที่มีสิทธิ์เข้าถึง Gmail และ Google ชีต หากยังไม่มี ให้สร้างบัญชีที่นี่
  • มีความรู้พื้นฐานเกี่ยวกับ JavaScript/Node.js

2. สิ่งที่ต้องทำก่อน

เปิดใช้ API

ในแล็บนี้ คุณจะได้ใช้ผลิตภัณฑ์/บริการของ Google ต่อไปนี้

  • Google Cloud Functions
  • Google Cloud Pub/Sub
  • Google Cloud Vision API
  • Google Cloud Datastore
  • Gmail API
  • Google Sheets API

Google Cloud Functions

Google Cloud Functions คือแพลตฟอร์ม Functions-as-a-Service แบบ Serverless ของ Google ที่ให้คุณเรียกใช้โค้ดแต่ละส่วน ("ฟังก์ชัน") ได้อย่างง่ายดายและปรับขนาดได้

หากต้องการเปิดใช้ฟังก์ชันของ Google Cloud ให้คลิกเมนูแฮมเบอร์เกอร์ที่ด้านซ้ายบนของหน้าจอเพื่อเปิดแถบด้านข้างสำหรับการนำทางด้านซ้าย

f457988e33594bb6.png

ค้นหา Cloud Functions ในเมนูการนำทาง แล้วคลิก คลิกเปิดใช้ API เพื่อเปิดใช้ Google Cloud Functions ในโปรเจ็กต์

Google Cloud Pub/Sub

Google Cloud Pub/Sub เป็นรากฐานที่เรียบง่ายและปรับขนาดได้สำหรับการสตรีมข้อมูลและการนำส่งเหตุการณ์ ในห้องทดลองนี้ จะทำหน้าที่เป็นผู้ส่งสารระหว่าง Gmail กับ Google Cloud Functions

หากต้องการเปิดใช้ Google Cloud Pub/Sub ให้เปิดแถบด้านข้างการนำทางด้านซ้าย ค้นหา Pub/Sub แล้วคลิก คลิกเปิดใช้ API เพื่อเปิดใช้ Google Cloud Pub/Sub ในโปรเจ็กต์

Google Cloud Datastore

Google Cloud Datastore เป็นฐานข้อมูลแบบ Serverless ที่ปรับขนาดและกระจายได้

หากต้องการเปิดใช้ Google Cloud Datastore ให้ค้นหา Datastore ในแถบด้านข้างของเมนูการนำทางด้านซ้าย แล้วคลิก คลิกเลือกโหมด Datastore ในหน้าใหม่

98012c91fd4080d4.png

คุณใช้ตำแหน่งฐานข้อมูลใดก็ได้สำหรับ Lab นี้ คลิกสร้างฐานข้อมูลเพื่อเปิดใช้ Google Cloud Datastore ซึ่งอาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์

Google Cloud Vision

Google Cloud Vision API เป็นบริการแมชชีนเลิร์นนิงที่มีประสิทธิภาพซึ่งใช้โมเดลที่ฝึกไว้ล่วงหน้าเพื่อรับข้อมูลเชิงลึกจากรูปภาพ

ดูวิธีการเปิดใช้ Google Cloud Vision API ได้ที่วิธีการด้านล่าง

การเปิดใช้ Gmail API, Google Sheets API และ Google Cloud Vision API

เปิดแถบด้านข้างการนำทางซ้ายอีกครั้ง แล้วค้นหา API และบริการ คลิกคลัง ในช่องค้นหา API และบริการ ให้พิมพ์ Gmail ในผลการค้นหา ให้เลือก Gmail API แล้วคลิกเปิดใช้

กลับไปที่หน้าไลบรารี API ค้นหา Google Sheets API แล้วเปิดใช้

ทำกระบวนการเดิมซ้ำ ค้นหา Cloud Vision API แล้วเปิดใช้

เปิด Google Cloud Shell

ในแล็บนี้ คุณจะได้ใช้ Google Cloud Shell เพื่อดำเนินการส่วนใหญ่ Cloud Shell มีบรรทัดคำสั่งเพื่อเข้าถึงทรัพยากร Google Cloud Platform ได้จากเบราว์เซอร์โดยตรง ซึ่งช่วยให้คุณจัดการทรัพยากรได้โดยไม่ต้องใช้เครื่องในพื้นที่

หากต้องการเปิด Google Cloud Shell ให้คลิกปุ่มเปิดใช้งาน Cloud Shell ในแถบแนวนอนสีน้ำเงินด้านบน

fd5c2925ca9cdfdd.png

แผงใหม่จะปรากฏที่ด้านล่างของหน้าจอ

34f498402e910802.png

คลิกปุ่มเปิดตัวแก้ไขโค้ดเพื่อเริ่มใช้ตัวแก้ไขโค้ด Cloud Shell

10f8631ef48bed22.png

โปรแกรมแก้ไขโค้ดของ Cloud Shell จะเปิดขึ้นในหน้าต่างใหม่

ดาวน์โหลดรหัส

เรียกใช้คำสั่งด้านล่างใน Cloud Shell เพื่อโคลนโปรเจ็กต์

git clone https://github.com/googlecodelabs/gcf-gmail-codelab.git

cd gcf-gmail-codelab

คุณควรเห็นโฟลเดอร์ใหม่ gcf-gmail-codelab ปรากฏในโปรแกรมแก้ไขโค้ดของ Cloud Shell

3. ภาพรวมสถาปัตยกรรม

เวิร์กโฟลว์ของห้องทดลองนี้มีดังนี้

79c5d3e43f674b33.png

  1. ผู้ใช้ตั้งค่าการแจ้งเตือนแบบพุชของ Gmail: ทุกครั้งที่มีข้อความใหม่เข้ามาในกล่องจดหมาย Gmail จะส่งการแจ้งเตือนไปยัง Cloud Pub/Sub
  2. Cloud Pub/Sub จะส่งการแจ้งเตือนข้อความใหม่ไปยัง Google Cloud Functions
  3. เมื่อได้รับการแจ้งเตือนข้อความใหม่ อินสแตนซ์ Cloud Functions จะเชื่อมต่อกับ Gmail และดึงข้อมูลข้อความใหม่
  4. หากอีเมลมีรูปภาพเป็นไฟล์แนบ อินสแตนซ์ Cloud Functions จะเรียก Cloud Vision API เพื่อวิเคราะห์ไฟล์แนบ
  5. อินสแตนซ์ Cloud Functions จะอัปเดต Google ชีตที่คุณเลือก โดยระบุผู้ส่งข้อความและตำแหน่งที่จะดาวน์โหลดไฟล์แนบ

4. ให้สิทธิ์เข้าถึง Gmail

ก่อนตั้งค่า Cloud Function เพื่ออ่านอีเมลโดยอัตโนมัติ คุณต้องให้สิทธิ์เข้าถึง Gmail คุณจะต้องลงทะเบียนไคลเอ็นต์ OAuth กับ Google และสร้างรหัสไคลเอ็นต์ที่เชื่อมโยง

ลงทะเบียนไคลเอ็นต์ OAuth

ในเมนูการนำทางด้านซ้ายของ Google Cloud Console ให้ค้นหา API และบริการ คลิกหน้าจอขอความยินยอม OAuth

91b2a3bac30bb2c5.png

พิมพ์ชื่อในช่องชื่อแอปพลิเคชัน เช่น GCF + Gmail Codelab ปล่อยให้การตั้งค่าอื่นๆ เหมือนเดิม เลื่อนลงไปที่ด้านล่างของหน้า แล้วคลิกบันทึก

สร้างรหัสไคลเอ็นต์ที่เชื่อมโยง

เปลี่ยนไปที่แท็บข้อมูลเข้าสู่ระบบ คลิกสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ OAuth เลือกประเภทเว็บแอปพลิเคชัน ตั้งชื่อ (คุณอาจใช้ GCF + Gmail Codelab อีกครั้งที่นี่) แล้วคลิกสร้าง เว้นช่องข้อจำกัดไว้ก่อน

จดรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ที่แสดงในหน้าต่างป๊อปอัป คุณคลิกชื่อไคลเอ็นต์ในหน้าเพื่อดูค่าเหล่านี้อีกครั้งได้

1160d8027ea52d90.png

ทำตามกระบวนการให้สิทธิ์

ในโค้ดตัวอย่าง auth/index.js จะระบุ Cloud Functions 2 รายการ ได้แก่ auth_init และ auth_callback ซึ่งทำงานร่วมกันเพื่อดำเนินการให้สิทธิ์ โดยใช้รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ที่คุณเพิ่งสร้าง

หากต้องการตรวจสอบโค้ด ให้เปิด auth/index.js ใน Cloud Shell Code Editor

กระบวนการให้สิทธิ์จะแสดงโทเค็น 2 ประเภท ได้แก่ โทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช

  • โทเค็นเพื่อการเข้าถึงคือหลักฐานระบุตัวตนที่มีอายุสั้นซึ่งให้สิทธิ์เข้าถึงข้อมูลของคุณตามขอบเขตแก่ทุกคนที่มีโทเค็นดังกล่าว auth_callback จะบันทึกโทเค็นไว้ใน Cloud Datastore
  • โทเค็นการรีเฟรชใช้เพื่อขอโทเค็นเพื่อการเข้าถึงใหม่และมีอายุการใช้งานนานกว่ามาก

โดยปกติแล้วจะมีการเข้ารหัสและ/หรือจัดเก็บแยกจากโทเค็นเพื่อการเข้าถึง

แก้ไข auth/env_vars.yaml ในตัวแก้ไขโค้ด Cloud Shell แทนที่ YOUR-GOOGLE-CLIENT-ID และ YOUR-GOOGLE-CLIENT-SECRET ด้วยค่าของคุณเอง ดูข้อมูลเพิ่มเติมได้ในขั้นตอนก่อนหน้า ปล่อยให้ค่าของ YOUR-GOOGLE-CLIENT-CALLBACK-URL และ YOUR-PUBSUB-TOPIC ไม่เปลี่ยนแปลงไปก่อน

a2b4853c39a78bc6.png

หลังจากแก้ไข auth/env_vars.yaml แล้ว ให้เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อทำให้ Cloud Functions ใช้งานได้

cd ~
cd gcf-gmail-codelab/auth

# Deploy Cloud Function auth_init
gcloud functions deploy auth_init --runtime=nodejs8 --trigger-http --env-vars-file=env_vars.yaml

# Deploy Cloud Function auth_callback
gcloud functions deploy auth_callback --runtime=nodejs8 --trigger-http --env-vars-file=env_vars.yaml

การติดตั้งใช้งาน Cloud Functions อาจใช้เวลา 2-3 นาที หากได้รับแจ้ง ให้อนุญาต Cloud SDK ติดตั้งคำสั่งเวอร์ชันเบต้า

จากนั้นไปที่ Google Cloud Console แล้วคลิก Cloud Functions ในเมนูการนำทางด้านซ้าย คลิก auth_callback ในรายการฟังก์ชันระบบคลาวด์ แล้วเปลี่ยนไปที่แท็บทริกเกอร์

cb094bd341f9b299.png

45678a327c80e0f1.png

คัดลอก URL ในหน้าเว็บ กลับไปที่หน้า Cloud Functions แล้วคลิก auth_init ในรายการ Cloud Functions คลิกแก้ไขในแท็บทั่วไป คลิกตัวแปรสภาพแวดล้อม เครือข่าย ระยะหมดเวลา และอื่นๆ แล้วแทนที่ค่าของ GOOGLE_CALLBACK_URL ด้วย URL ที่คุณเพิ่งคัดลอก

939ca3bd38047282.png

คลิกติดตั้งใช้งานเพื่อใช้การเปลี่ยนแปลง ทำกระบวนการเดิมซ้ำและอัปเดต auth_callback ด้วย

สุดท้าย ให้เปิดเมนูการนำทางด้านซ้าย แล้วคลิก API และบริการ > การยืนยันโดเมน หากต้องการเพิ่มโดเมนที่ได้รับอนุญาต ให้คลิกเพิ่มโดเมน ตัวอย่างเช่น หาก URL ที่คุณคัดลอกไว้ก่อนหน้านี้มีลักษณะดังนี้

https://us-central1-my-project.cloudfunctions.net/auth_callback

คุณควรเพิ่มรายการต่อไปนี้เป็นโดเมนที่ได้รับอนุญาต

us-central1-my-project.cloudfunctions.net

กดเพิ่มโดเมนเพื่อยืนยัน

4348748f232ceb87.png

กลับไปที่หน้าข้อมูลเข้าสู่ระบบ คลิกชื่อไคลเอ็นต์ OAuth แล้วเพิ่ม URL ที่คัดลอกเป็น URI การเปลี่ยนเส้นทางที่ได้รับอนุญาต กด Enter เพื่อยืนยัน

นำส่วน /auth_callback ออกจาก URL แล้วเพิ่มส่วนที่เหลือเป็นต้นทาง JavaScript ที่ได้รับอนุญาต เช่น หาก URL ของคุณมีลักษณะดังนี้

https://us-central1-my-project.cloudfunctions.net/auth_callback

คุณควรเพิ่มสิ่งต่อไปนี้เป็นต้นทาง

https://us-central1-my-project.cloudfunctions.net/

159bad719432582c.png

กด Enter เพื่อยืนยัน แล้วคลิกบันทึกเพื่อใช้การเปลี่ยนแปลง

5. ตั้งค่าการแจ้งเตือนแบบพุชของ Gmail

หากกระบวนการให้สิทธิ์สำเร็จ auth_callback จะเรียกใช้ Gmail API โดยอัตโนมัติเพื่อตั้งค่าข้อความ Push

หากต้องการรับข้อความ Push ของ Gmail คุณต้องสร้างหัวข้อ Pub/Sub ผู้สมัครรับข้อมูลหัวข้อจะได้รับการแจ้งเตือนข้อความขาเข้าโดยอัตโนมัติเมื่อข้อความมาถึงจาก Gmail

หากต้องการสร้างหัวข้อ Pub/Sub ให้ไปที่ Google Cloud Console แล้วคลิก Pub/Sub > หัวข้อในเมนูการนำทางด้านซ้าย คลิกสร้างหัวข้อ พิมพ์ชื่อหัวข้อ เช่น gmail-watch แล้วคลิกสร้าง นอกจากนี้ คุณต้องให้สิทธิ์ Gmail ในการส่งข้อความไปยังหัวข้อ Pub/Sub โดยคลิกเมนูบริบทของหัวข้อที่เพิ่งสร้าง (จุดแนวตั้ง 3 จุด) แล้วเลือกสิทธิ์ คลิกเพิ่มสมาชิก ระบุ gmail-api-push@system.gserviceaccount.com เป็นสมาชิกใหม่ และให้บทบาท Pub/Sub > ผู้เผยแพร่ Pub/Sub สุดท้ายคลิกบันทึกเพื่อใช้การเปลี่ยนแปลง

อัปเดต Cloud Function auth_callback เพื่อระบุหัวข้อ Pub/Sub ที่จะใช้ คลิก Cloud Functions ในเมนูการนำทางด้านซ้าย แล้วเลือก auth_callback ในรายการ Cloud Functions คลิกแก้ไขในแท็บทั่วไป คลิกเพิ่มเติม แล้วแทนที่ค่าของ PUBSUB_TOPIC ด้วยชื่อของหัวข้อ Pub/Sub ที่คุณเพิ่งสร้าง คลิกบันทึกเพื่อใช้การเปลี่ยนแปลง

ตอนนี้คุณพร้อมที่จะให้สิทธิ์และตั้งค่าการแจ้งเตือนแบบพุชของ Gmail แล้ว รอจนกว่าการเปลี่ยนแปลงใหม่จะเสร็จสมบูรณ์ จากนั้นกลับไปที่หน้า Cloud Functions เลือก auth_init ในรายการ Cloud Functions แล้วสลับไปที่แท็บทริกเกอร์ คลิก URL แล้วระบบจะเปลี่ยนเส้นทางไปยังหน้าลงชื่อเข้าใช้ด้วย Google

348ab0a7e0c9cd03.png

ลงชื่อเข้าใช้ด้วยบัญชี Gmail ที่คุณเป็นเจ้าของ ข้อความใหม่ที่เข้ามาในกล่องจดหมายของบัญชีจะทริกเกอร์ข้อความ Push หลังจากลงชื่อเข้าใช้แล้ว คุณจะเห็นหน้าเว็บด้านล่าง

cfdad62fd02de004.png

คลิกอนุญาตเพื่อให้สิทธิ์เข้าถึง auth_callback จะดำเนินการให้สิทธิ์ให้เสร็จสมบูรณ์ บันทึกโทเค็นการเข้าถึง และตั้งค่าการแจ้งเตือนแบบพุชของ Gmail ให้คุณ คุณควรเห็นข้อความ Successfully set up Gmail push notifications ในเบราว์เซอร์เมื่อกระบวนการนี้เสร็จสมบูรณ์

Codelab นี้ใช้แพ็กเกจ @google-cloud/express-oauth2-handlers เพื่อทำให้เวิร์กโฟลว์การให้สิทธิ์เป็นแบบอัตโนมัติ ดูข้อมูลเพิ่มเติมได้ที่ที่เก็บใน GitHub

6. ประมวลผลข้อความขาเข้า

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ ผู้สมัครใช้บริการหัวข้อ Pub/Sub ที่คุณสร้างจะได้รับการแจ้งเตือนเมื่อมีข้อความใหม่เข้ามาในกล่องจดหมาย pubsub/index.js ระบุ Cloud Function watchGmailMessages ซึ่งเมื่อติดตั้งใช้งานเป็นผู้ติดตามหัวข้อแล้ว จะอ่านข้อความใหม่ จัดหมวดหมู่รูปภาพที่แนบมา และส่งออกหมวดหมู่เหล่านั้นไปยัง Google ชีต

หากต้องการตรวจสอบโค้ด ให้เปิด pubsub/index.js ใน Cloud Shell Code Editor

การเรียกข้อความ

การแจ้งเตือนแบบพุชของ Gmail จะมีอีเมลที่เชื่อมโยงกับการแจ้งเตือนและรหัสประวัติ เพื่อความสะดวก ในโค้ดแล็บนี้คุณจะขอข้อความล่าสุดจาก Gmail API เมื่อได้รับการแจ้งเตือนแบบพุช แต่หากต้องการผลลัพธ์ที่ดีกว่า ให้ใช้รหัสประวัติเพื่อค้นหาข้อความแทน

// Look up the most recent message.
const listMessagesRes = await gmail.users.messages.list({
  userId: email,
  maxResults: 1
});
const messageId = listMessagesRes.messages[0].id;

// Get the message using the message ID.
const message = await gmail.users.messages.get({
  userId: email,
  id: messageId
});

return message;

วิเคราะห์ไฟล์แนบรูปภาพ

หากข้อความมีไฟล์ภาพแนบ watchGmailMessages จะเรียกใช้ Cloud Vision API เพื่อใส่คำอธิบายประกอบในรูปภาพ ใน Codelab นี้ คุณจะขอให้ Cloud Vision API จัดหมวดหมู่รูปภาพและแสดงแท็กรูปภาพจำนวนหนึ่ง เช่น หากระบุรูปภาพท้องฟ้าสีคราม Cloud Vision API อาจแสดงแท็ก blue, sky และ nature

watchGmailMessages ใช้ไลบรารี Cloud Vision API สำหรับ Node.js เพื่อเรียกใช้ Cloud Vision API

// Tag the attachment using Cloud Vision API
const analyzeAttachment = async (data, filename) => {
  var topLabels = ['', '', ''];
  if (filename.endsWith('.png') || filename.endsWith('.jpg')) {
    const [analysis] = await visionClient.labelDetection({
      image: {
        content: Buffer.from(data, 'base64')
      }
    });
    const labels = analysis.labelAnnotations;
    topLabels = labels.map(x => x.description).slice(0, 3);
  }

  return topLabels;
};

อัปเดตสเปรดชีตใน Google ชีต

watchGmailMessages จะส่งออกผลการวิเคราะห์นี้ไปยัง Google ชีต ซึ่งรวมถึงชื่อผู้ส่ง ชื่อไฟล์แนบ และแท็กของไฟล์แนบรูปภาพ (หากมี)

ก่อนอื่น ให้สร้าง Google ชีต เปิด Google ชีต แล้วคลิกเทมเพลตเปล่าในส่วนเริ่มสเปรดชีตใหม่ คัดลอกรหัสของชีต เช่น หากที่อยู่ในเบราว์เซอร์มีลักษณะดังนี้

https://docs.google.com/spreadsheets/d/abcdefghij01234567890/edit#gid=0

รหัสสเปรดชีตของคุณคือ abcdefghij01234567890 ในโปรแกรมแก้ไขโค้ด Cloud Shell ให้อัปเดต gcf-gmail-codelab/pubsub/env_vars.yaml และแทนที่ YOUR-GOOGLE-SHEET-ID ด้วยค่าของคุณเอง

watchGmailMessages เชื่อมต่อกับ Google Sheets API เพื่อผนวกข้อมูล

const updateReferenceSheet = async (from, filename, topLabels) => {
  await googleSheets.spreadsheets.values.append({
    spreadsheetId: SHEET,
    range: SHEET_RANGE,
    valueInputOption: 'USER_ENTERED',
    requestBody: {
      range: SHEET_RANGE,
      majorDimension: 'ROWS',
      values: [
        [from, filename].concat(topLabels)
      ]
    }
  });
};

ขั้นตอนสุดท้าย

ในตัวแก้ไขโค้ดของ Cloud Shell ให้เปิด gcf-gmail-codelab/pubsub/env_vars.yaml แล้วแทนที่ YOUR-GOOGLE-CLIENT-ID, YOUR-GOOGLE-CLIENT-SECRET และ YOUR-GOOGLE-CALLBACK-URL ด้วยค่าของคุณเอง คุณดูค่าเหล่านี้ได้ใน Google Cloud Console โดยเปิด Cloud Functions ในเมนูการนำทางด้านซ้าย เลือก auth_init ในรายการ Cloud Functions แล้วค้นหาส่วนตัวแปรสภาพแวดล้อม

ติดตั้งใช้งานโค้ด

เรียกใช้คำสั่งด้านล่างเพื่อทำให้ Cloud Functions ใช้งานได้

cd ~

cd gcf-gmail-codelab/pubsub

gcloud functions deploy watchGmailMessages --runtime=nodejs8 --trigger-topic=gmail-watch --env-vars-file=env_vars.yaml

หากตั้งชื่อหัวข้อ Cloud Pub/Sub เป็นอย่างอื่นที่ไม่ใช่ gmail-watch ให้แทนที่ gmail-watch ในคำสั่งด้านบนด้วยชื่อหัวข้อของคุณ ระบบอาจใช้เวลาสักครู่ในการติดตั้งใช้งาน Cloud Functions

7. ลองเลย

ยินดีด้วย คุณทำเสร็จแล้ว ส่งอีเมลพร้อมไฟล์แนบรูปภาพให้ตัวเอง ในอีกไม่กี่วินาที คุณจะเห็นว่า Google ชีตที่สร้างขึ้นจะอัปเดตข้อมูลที่คุณให้โดยอัตโนมัติ