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

ขั้นตอนการสร้างระบบแจ้งเตือนส่งทางไลน์ตามวันเวลาที่กำหนด : กรณีตัวอย่างระบบอัตโนมัติส่งคำอวยพรวันเกิดเพื่อน มีดังนี้

1. สร้าง Google sheet และเตรียมข้อมูลวันเดือนปีเกิดและชื่อ-สกุล
    1.1  เปลี่ยน สเปรดชีตไม่มีชื่อ เป็น line notify
    1.2  เปลี่ยน ชีต1 เป็น sheet1 เพื่อง่ายต่อการอ้างอิงชื่อชีตในสคริปต์ ถ้ามีชีตเดียวไม่ต้องเปลี่ยนชื่อก็ได้
    1.3  กำหนดคอลัมน์ date (วัน/เดือน/ค.ศ.) time ( เวลาแจ้งเตือน ชั่วโมง:นาที) และ name (ชื่อ สกุล) หรือจะใช้ชื่อคอลัมน์เป็นภาษาไทยก็ได้ ไม่มีความยุ่งยากหรือไม่มีผลกระทบใดๆ เพราะไม่ได้ใช้ข้อมูลในแถวที่เป็นชื่อคอลัมน์ (แถว 1) 


      1.4 ป้อนข้อมูล หรือคัดลอกข้อมูล

จากชีตเป็นการกำหนดให้แจ้งเตือนเวลา 1 นาฬิกาของวันเดือนปีที่เกิด แต่ในการทดลองสคริปต์จะต้องเปลี่ยนวันเดือนปีเกิดเป็นวันเดือนปีเกิด 30/6/2023 และเวลาที่ใกล้ๆ กับปัจจุบัน (14:25) เพื่อไม่ต้องรอดูผลการรันสคริปต์นานเกินไป ขอเปลี่ยนข้อมูลสัก 3 คน (เสร็จจากการทดลองรันสคริปต์แล้วต้องเปลี่ยนกลับไปตามเดิม) ดังนี้

 

2. เขียนสคริปต์และตั้งค่าการทำงาน
    2.1 เปิดส่วนขยาย และ Apps Script

2.2 สร้างไฟล์ code.gs คัดลอกโค้ด และบันทึก

      2.2.1  คัดลอกโค้ดฟังชั่น

      2.2.2  สร้าง Token ID แล้วจะได้บัญชีไลน์ใหม่ 1 บัญชี คือ Line Notify ในบทบาทผู้ส่งข่าวสารแบบอัตโนมัติ ถ้าต้องการให้แจ้งเตือนไปยังกลุ่มไลน์ไหนก็เชิญ Line Notify เข้ากลุ่มนั้น ทำการคัดลอก Token ID ไปวางแทนที่ในตัวแปร token

      2.2.3  คัดลอก sheet ID มาวางแทนที่ในตัวแปร ss

      2.2.4  กำหนดข้อความที่จะส่ง เช่น

                    Happy Birth Day เพื่อน *** ชื่อ สกุลของเพื่อน *** เพิ่มโค้ด ดังนี้

      2.2.5  กำหนดค่าการทำงาน – ทริกเกอร์ (trigger)

3. บันทึกสคริปต์ และทดลองรันสคริปต์
    เรียกใช้ครั้งแรกจะต้องยืนยันสิทธิ์และอนุญาตการเข้าถึง

 


แสดงว่าสคริปต์ไม่มี error สามารถรันได้ ผลลัพทธ์ที่ได้แสดงวันเดือนปี และเวลามาจากโค้ด Logger.log(dateMEMO) และ Logger.log(timeMEMO) ที่อ่านค่ามาจากชีตคอลัมน์ 1 และ 2 ถ้ารันสคริปต์ได้ถูกต้องแล้วให้ปิดโค้ด 2 บรรทัดนี้ด้วยเครื่องหมาย //

4. ผลลัพธ์ เมื่อมีการแจ้งเตือนทางไลน์ตามกำหนดวัน เวลา และชื่อในชีตข้อ 1.4

สรุป
ระบบแจ้งเตือนจาก Google Sheet ส่งไปที่ไลน์โดยการใช้ Apps Scripts มีหลักการว่าสคริปต์จะต้องรู้ว่าต้องเอาข้อมูลมาจากชีตอะไร (Google Sheet Id) แล้วต้องส่งไปไลน์โดยใช้รหัสสิทธิ์ผ่านอะไร (Token Id) นับว่ามีประสิทธิภาพมาก สามารถแสดงข้อความในไลน์ได้ทันที สะดวกในการอวยพรวันเกิดเพื่อนๆ เมื่อถึงวันเกิดเพื่อนคนใดระบบจะส่งข้อความอวยพรเข้ากลุ่มไลน์แบบอัตฺโนมัติ

แต่ผู้เขียนยังเห็นว่ามีข้อจำกัดอยู่ที่ต้องกำหนดวัน เดือน ปี เป็นปีๆ ไป เพราะต้องตรวจสอบวัน เดือน ปี ของปัจจุบัน กับวัน เดือน ปีของวันเกิด เช่น คนที่เกิดวันที่ 5 พฤษภาคม จะต้องคีย์ข้อมูล 5/5/2023 ซึ่งปี ค.ศ. ไม่ใช่ปีเกิดจริง แต่เอาไว้เปรียบเทียบกับปัจจุบัน คือ วันที่ 5 พฤษภาคม 2563 (5/5/2023)  พอจะขึ้นปีใหม่ต้องแก้ไข 2023 เป็น 2024 เป็นเช่นนี้เรื่อยไป ไม่สะดวกและเสียเวลา ถ้าเอาเฉพาะวันและเดือนปัจจุบัน เปรียบเทียบกับวันและเดือนเกิดได้ เช่น เกิดวันที่ 5 พฤษภาคม (5/5) ตรงกับวันนี้วันที่ 5 พฤษภาคม (5/5) ให้ระบบส่งข้อความอวยพรตามเวลาที่กำหนด โดยกำหนดให้โค้ดอ่านค่าข้อมูลมาเฉพาะวันที่กับเดือน คือ 5/5 จากวันเดือนที่เกิดกับวันเดือนปัจจุบัน ส่วน ปี ค.ศ. ใส่ไว้เฉยๆ (ไม่ใช่ปีเกิดจริง) เพื่อให้ครบถ้วนตามรูปแบบของข้อมูลวันที่ (date: dd/mm/yyyy) เท่านั้น ถ้าทำได้ก็ไม่ต้องปรับปรุงข้อมูลปี ค.ศ. ให้เป็นปัจจุบัน ทำครั้งเดียวใช้ได้ตลอดไป น่าจะทำได้เพราะ Apps Script มีคำสั่ง substring คล้ายภาษา PHP ที่สามารถดึงค่าบางส่วนจากตัวแปรได้

ระบบนี้อาจจะนำไปประยุกต์ใช้แจ้งเตือนต่างๆ ได้ ถ้าส่งวันและเดือนที่เกิดไปด้วย เช่น 12/10 Happy Birth Day เพื่อน xxxxxxx หรือส่งรูปการ์ดอวยพรไปด้วยก็จะสวยงามเร้าใจน่าดูมากยิ่งขึ้น จะต้องเขียนโค้ดอย่างไร ?

อ้างอิง

  • อัปเดตการทำระบบแจ้งเตือนตามวันและเวลาที่กำหนด แบบง่ายๆ ด้วย Notify App Library โดยครูอภวัฒน์ สอนสร้างสื่อ เข้าถึงจาก https://youtu.be/KA6L6GYdN0M วันที่ 5 พฤษภาคม 2563
  • Automate & extend Google Workspace with simple code. เข้าถึงได้จาก https://developers.google.com/apps-script/ วันที่ 5 พฤษภาคม 2563
  • Tutorial Appsheet. เข้าถึงได้จาก https://www.scribd.com/document/477923918/TUTORIAL-APPSHEET-docx วันที่ 5 พฤษภาคม 2563

 

>>> ดาวน์โหลดเอกสาร PDF <<<