ใช้ Google Apps Script สร้าง API เชื่อมต่อ Google Sheet & Chatbot

Dr. Winn Voravuthikunchai
botnoi-classroom
Published in
2 min readApr 15, 2021

สวัสดีครับ หลังจากที่ได้อ่านบทความเรื่อง apps script ของคุณ Nutsuda Ploysopond ว่าสามารถสร้าง RESTful api ได้ เมื่อตอนบ่าย ก็ศึกษาเพิ่มเติมแล้วพบว่าสามารถใช้ต่อกับ Google Sheet เพื่อดึงและใส่ข้อมูลได้ด้วย ก็ถึงกับต้องตื่นมากลางดึก ตอนตี 3 แล้วลุกขึ้นมาอัดคลิป เขียนบทความเพื่อแชร์ให้ทุกคนได้อ่านกัน

ทำไมถึงตื่นเต้นขนาดนี้ใช่มั้ยครับ ก็เพราะว่า

  1. เป็นการสร้าง API ที่สะดวกมาก ๆ แค่เขียน Java Script แล้วกดปุ่ม deploy ทำได้ภายใน 5 นาที
  2. เชื่อมต่อกับ Google Sheet สบายมาก เพราะมันเป็น Add-on feature ซึ่งถ้าเกิดว่าจะเขียนและโฮส API เอง ก็จะต้องวุ่นวายเพิ่มขึ้น ในขั้นตอนสร้างพวก credential ของ Google เพื่อให้สามารถเข้าถึง Google Sheet ได้
  3. ที่สำคัญฟรี! ที่ผ่านมาผมจะใช้ Heroku เป็น platform ในการโฮส API ซึ่งตัว Heroku ในเวอร์ชั่นฟรี จะมีการ sleep 30 วิ เวลา API ไม่ถูกใช้งานนาน ๆ พอจะใช้ก็ต้องปลุกให้ server ตื่นขึ้นมา

เมื่อเข้าใจข้อดีต่าง ๆ แล้ว ก็มาลุยกันเลยครับ

สำหรับในบทความนี้ผมจะสร้างตัวอย่าง การใช้งาน หรือ use case อย่างง่าย ๆ นะครับ นั่นคือ สมมติว่าเรามี Google Sheet ที่มีข้อมูลการขายของ แล้วเราอยากจะเชคข้อมูลยอดขายทั้งหมดแบบ real time ผ่านแชทบอทของเรา

ขั้นตอนที่ 1

สร้าง Google Sheet ง่าย ๆ ขึ้นมา โดยข้อมูลยอดขายทั้งหมดจะอยู่ใน แถวสุดท้าย คอลัมน์สุดท้ายนะครับ

ขั้นตอนที่ 2

2.1 ไปที่ tab Extensions แล้วกดที่ Apps Script ก็จะปรากฎเป็นหน้าต่าง ให้เราสามารถที่จะเขียนโค้ด JavaScript ได้

2.2 ให้ก๊อปปี้โค้ดนี้ แล้วไปแปะแทนใน code ตั้งต้นครับ แล้วก็ให้ใส่ url ของ Google sheet ของเรา แทนใน “your sheet” นะครับ

สำหรับโค้ดนี้ ก็ค่อนข้างตรงไปตรงมา รับค่า request ก็คือการเรียก API เข้าฟังก์ชั่น doGet จากนั้น ก็ลิงค์ข้อมูลเข้าที่ตัวแปร ss แล้วก็ดึง data ทั้งหมดเข้าไปที่ตัวแปร sheet สำหรับฟังก์ชั่น getRange เป็นฟังก์ชั่นที่ใช้ดึงค่าที่ต้องการ เราต้องการค่าของแถวสุดท้าย คอลัมน์สุดท้ายครับ สุดท้ายแล้ว เราก็สร้าง JSON object ใช้ชื่อตัวแปรว่า jo แล้วก็ return ค่ากลับไปผ่าน ContentService

2.3 ตั้งชื่อ APP จากนั้นก็ save แล้วก็ run ครับ Google ก็จะให้เรา accept เงื่อนไข การเข้าถึงต่าง ๆ

2.4 เมื่อรันผ่านเรียบร้อย ก็กดปุ่ม deploy ครับ เลือกเป็น webapp แล้วก็ copy link ไปทดสอบเรียก API ใน browser ครับ ลองเปลี่ยนค่าดูแล้วเรียกใหม่ก็จะได้ค่าที่อัพเดททันที

ขั้นตอนที่ 3

เราก็สามารถเอา API นี้ไปเชื่อมต่อกับ application ของเรา ซึ่งอาจจะเป็นเว็ปไซด์หรือแชทบอทก็ได้ครับ

ในส่วนของแชทบอทหาก

a. ใครจะเขียนเองขึ้น server เองก็เอา API ไปแปะในโค้ดนะครับ สร้างแชทบอทยังไงตั้งแต่ต้น มีบทความในอินเตอร์เน็ตอยู่พอสมควรครับ ในภาษาต่าง ๆ

b. หากใครใช้ platform ของ Dialogflow ก็จะมีส่วนที่เขียน node.js เรียก API ได้เช่นกัน

c. แต่หากใช้ platform แชทบอทของ BOTNOI ก็จะเชื่อมต่อได้ง่ายมากครับ ตอนนี้เปิดให้ทดลองใช้งานฟรีอยู่ครับ และต่อไปหากใช้งานเอง ภายใน มียอดคนใช้งานแชทบอทไม่เกิน 2 พันคน ก็สามารถใช้ฟรีต่อไปได้ยาว ๆ เลยครับ

วิธีการเป็นดังนี้ครับ

3.1 ลงทะเบียน API object ตั้งชื่อ object แล้วใส่ URL ของ API ของเรา

3.2 สร้าง Intent แล้วใส่ประโยคที่สอดคล้องกับ Intent

3.3 ตั้งค่าตอบกลับโดยเรียก API object แล้วก็ return ค่าคืนออกไปโดยใช้ <<API_object.field>> เพื่อคืนค่าที่ต้องการครับ

สำหรับใครที่ยังไม่เคยใช้เครื่องมือสร้างแชทบอทของ BOTNOI เลย สามารถศึกษาได้จาก playlist นี้นะครับ แล้วก็มี document เพื่อศึกษาเพิ่มเติมได้อีกครับ

สุดท้ายสามารถ join community นี้ได้ครับ เพื่อสอบถามการใช้งานของ platform ครับ

ก็หวังว่าจะมีประโยชน์กับทุกคนคุ้มค่ากับการตื่นมากลางดึกของผมนะครับ อยากให้ลองไปต่อยอดกันนะครับ อาจจะดึงค่าตารางสินค้า เป็นรูป แล้วแสดงออกมาเป็น Dynamic Flex message หรือว่า เราอาจจะสามารถส่งค่าจากแชทบอทกลับไปเก็บใน Google sheet ก็ได้ ใครทำอะไรเจ๋ง ๆ ออกมาอยากให้มาแชร์กันนะครับ

ผมคิดว่า Google Apps script ต้องทำอะไรได้อีกมากแน่ ๆ เลย หากผมเจออะไรเด็ด ๆ ก็จะมาแชร์ให้อีกนะครับ เจอกันใหม่ครับ สวัสดีครับ

— — — — — —

สำหรับใครที่สนใจ AI สนใจ Data science สามารถ join group Botnoi Classroom จะคอยอัพเดทเทรนด์ ความรู้ ทางด้าน AI และ Data science แล้วก็คอยประกาศอีเวนท์ หรือเปิดคลาสสอนด้วย

ส่วนหากใครสนใจใช้บริการ BOTNOI ในสร้างแชทบอท หรือให้คำปรึกษาเกี่ยวกับ AI & Data science ติดต่อได้ผ่านเวป -> Botnoi และ FB Page Botnoi Consulting นะครับ

--

--

Dr. Winn Voravuthikunchai
botnoi-classroom

obtained his PhD in AI from Caen University, France. He was Chief Data Scientist at Telenor. Currently, he is Founder & CEO of Botnoi Group, and LINE API Expert