LINE Notify—แจ้งเตือน Event รายวันจาก Google Calendar [Apps Script]

เพื่อนๆ ที่ใช้งาน Google Calendar เป็นประจำอยู่แล้วคงจะคุ้นเคยกับการแจ้งเตือน Event ที่ได้กำหนดไว้อยู่แล้ว แต่ถ้าหาก Event ที่เราต้องการให้การแจ้งเตือนนั้นเป็น Event ที่ต้องแจ้งเตือนสมาชิกภายในทีมที่มีสมาชิกหลายคนๆ ถ้าหากว่าทีมของเราไม่สะดวกในการอ่านอีเมลแจ้งเตือนทุกครั้ง แต่ทีมได้สร้าง Group Line ไว้แล้ว วันนี้มาดูอีกวิธีที่จะทำการแจ้งเตือน Event ให้สมาชิกในทีมทราบโดยแจ้งเตือน Event ของวันในทุกๆ เช้า โดยผ่านทาง LINE Notify กันครับ โดยผมจะใช้ Apps Script เพื่อเชื่อมต่อ Google Calendar ให้แจ้งเตือนไปที่ LINE Notify ที่อยู่ใน Group Line ทีม มาเริ่มกันเลยดีกว่าครับ


1. สร้างปฏิทินที่จะใช้สร้าง Event

— เริ่มจากการเพิ่มปฏิทินใน Google Calendar กันก่อนครับ โดยให้คลิ๊กที่เครื่องหมาย + ที่เมนู Other calandars แล้วเลือกเป็น Create new calendar ได้เลยครับ

— ทำการกำหนดชื่อปฏิทิน และรายละเอียดได้เลยครับ

— หลังจากนั้นให้เข้าไปที่ปฏิทินที่ได้สร้างไว้ เพื่อไป Copy Calendar Id เพื่อเอามาใช้งานในข้อต่อไปในการเขียน Apps Script ครับ

— ทดลองสร้าง Event ลงในปฏิทินได้เลยครับ โดยผมจะนำข้อมูลใน Event ที่จะแจ้งเตือนไปที่ LINE Notify ตามนี้

  • หัวข้อ Event (Title)
  • เวลาเริ่มต้น (Start Time)
  • รายละเอียดเพิ่มเติม (Descriptions)

2. เขียน Code ใน Apps Script

— ต่อมาด้วยการเขียน Code ใน Apps Script เพื่อดึงค่าที่ต้องการใน Event มากำหนดในตัวแปรที่ต้องการก่อนครับ เริ่มจากให้ไปที่ https://script.google.com/ แล้วเลือก New project ได้เลยครับ

— ทำการเพิ่ม Code เพื่อสร้างฟังก์ชัน dailyEventMessage ตามตัวอย่างด้านล่างได้เลยครับ เพื่อกำหนดข้อความที่ได้จาก Event ที่จะส่งแจ้งเตือนไปที่ LINE Notify ครับ อย่าลืมกำหนดตัวแปร var googleCalendarId = “Your google calendar id” โดยใช้ Google calendar id ที่ได้มาด้วยน่ะครับ

— กด Run ฟังก์ชัน dailyEventMessage

— มาดู Log ว่าได้ข้อความอะไรมาบ้างครับ จะเห็นได้ว่ามี 2 Event ที่มีในปฏิทินตามที่กำหนดไว้ครับ

— ต่อมาทำการเพิ่ม Notify Token โดยตั้งชื่อ และกำหนดให้ LINE Notify ส่งเข้ากลุ่มที่ต้องการ และ LINE ส่วนตัวได้เลยครับ อย่าลืม Copy Token ที่ได้มาไว้น่ะครับ เพราะจะมาให้เราเห็นครั้งเดียว!!!

— ทำการเขียน Code ใน Apps Script โดยสร้างฟังก์ชัน sendMessage เพื่อส่งข้อความที่ได้จากข้อ 1 ให้แจ้งเตือนไปที่ LINE Notify กันต่อได้เลยครับ โดยใช้ Token ที่ได้กำหนดในตัวแปร var accessToken = “Your line notify access token”

— ทำการทดสอบโดย Run ฟังก์ชัน dailyEventMessage ได้เลยครับ [โดยฟังก์ชัน sendMessage จะถูกเรียกใช้ในบรรทัดที่ 25 ] แล้วอย่าลืมกด Allow ให้ Apps Script ที่เราเขียนไว้ด้วยน่ะครับ

— หากเพื่อนๆ คนไหนอยากได้ Event ของวันพรุ่งนี้แทนก็ให้แก้ไข Code ในตัวอย่างบรรทัดที่ 5-7 ตามรูปได้เลย ⚠️อย่าลืมแก้ไขตัวแปร dailyEventList ใน for loop เป็น toMorrowEventList ด้วยน่ะครับ [บรรทัดที่ 12 14 15 16]

— หากได้ข้อความตามที่ต้องการแล้ว ผมจะกำหนดให้มีการ Run Code ทุกเช้าๆ เพื่อตรวจสอบว่าวันนี้มี Event อะไรบ้าง และให้แจ้งเตือนผ่าน LINE Notify ในทุกเช้า โดยไปที่เมนู Edit –> Current project’s triggers แล้วเลือก Add Trigger แล้วทำการตั้งค่าให้ตามตัวอย่างด้านล่างได้เลยครับ


ท้ายสุด เพียงเท่านี้เราก็จะมี LINE Notify แจ้งเตือน Event ประจำวันจาก Google calendar มาเพื่อแจ้งเข้า LINE Group เพื่อให้ทีมงานทราบแล้วครับว่ามีงานอะไรที่ต้องทำบ้างในแต่ละวัน ก็หวังว่าบทความนี้เพื่อนๆ จะได้นำไปใช้ให้เกิดประโยชน์น่ะครับ Happy coding and Practice makes perfect! 💡💡💡


อ้างอิง

https://github.com/horikeso/google-calendar-line-notify
https://developers.google.com/apps-script/reference/calendar/
https://developers.google.com/apps-script/reference/calendar/calendar-event
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app
https://developers.google.com/apps-script/reference/url-fetch/http-response


ประกันรถใกล้หมดแล้ว ไม่อยากจ่ายแพง อยากได้ราคาดีที่สุดคลิกเช็คเบี้ย ฟรี!! ที่นี่🔗 https://bit.ly/3sEMzHO

โปรโมชั่น คูปองส่วนลด และดีล ที่ดีที่สุดของร้านค้าออนไลน์กว่า 300 แบรนด์พร้อมรับเงินคืนจาก ShopBack
🔗 https://bit.ly/3c4tlmV

Ruk-Com จดโดเมน-เช่าโฮสต์ ราคาประหยัด พร้อมให้บริการใน 1 นาที
🔗 http://bit.ly/36q8A12