องค์ประกอบของ Line Bot logs บันทึกกันลืม
วันก่อนเขียนตั้งไว้แล้ว วันหลังจะมาแก้ไขเขียนเพิ่มลืมไปแล้วว่าที่มาที่ไปจากไหนมานั่งไล่กันใหม่ด้วยอายุที่เริ่มมากแล้ว อิอิ วันนี้ก็บันทึกกันลืม ผมขออธิบายภาพรวมองค์ประกอบคร่าวๆที่จำเป็น ส่วนรายละเอียดโค้ดก็หากันได้ทั่วไปน่ะครับ
เมื่อเราลงทะเบียนสร้าง line bot แล้ว เราต้องชี้ webhook ออกภายนอกและ url ต้องเป็น https เท่านั้น หากเราตั้ง server on premise ไม่มี https เราก็ชี้ web hook ไปยัง heruku โดย webhook ที่รับมาจาก linebot คือ linebot จะสามารถรับข้อมูลจากการสนทนาทุกข้อความ แล้วเราจะทำอะไรต่อ เช่น ตอบกลับ แต่ในที่นี้ผมให้เฝ้าฟังข้อความแล้วบันทึก logs กลับเข้า database on premise ทั้งข้อความและรูปภาพ ปัจจุบัน line กำหนด expire ให้กับรูปภาพ เมื่อ linebot ส่งข้อมูลมายัง heroku แล้ว ผมเขียนให้ app service ใน heruku post data กลับมายัง webhook ที่ run on premise ทำการ nat firewall port ไว้เรียบร้อยแล้ว ฝั่ง on premise ก็ทำการนำข้อมูลมาบันทึกลงฐานข้อมูล ทั้งข้อความและรูปภาพ
และออกแบบการจัดการไฟล์รูปภาพไว้ นานเข้าหากเก็บเข้า folder เดียวกันหมดจะช้ามาก ผมจึงสร้าง folder แยกตามปี/เดือน/กลุ่ม/วันที่/ชั่วโมง เพราะผมต้องการให้ linebot เก็บ logs การสนทนาในกลุ่มต่างๆ แล้วนำมาแสดงผลตามวันที่/ตามกลุ่ม/ตามชั่วโมง และการจะลบรูปภาพเก่าๆในภายหลังก็ง่ายเพราะเราแยกปีไว้แล้ว
แต่หาก server on premise เราสามารถ run https ได้เราก็ตัด service ฝั่ง heroku ออกได้ครับ
ท้ายนี้ถามว่าเก็บ logs เพื่ออะไร เนื่องจากเราใช้ line ในการทำงาน บางครั้งเราต้องการเก็บหลักฐานการสนทนา และตอนนี้รูปก็มี expire เราสามารถประยุกต์ใช้ด้านต่างๆอีกมากมาย หากเราสามารถเรียนรู ้line api เพื่อดึงข้อมูลใน line มาใช้งานได้
ส่วนหากเพื่อนๆจะนำมาเขียน line bot แบบโต้ตอบผมแนะนำให้ใช้ร่วมกับ dialogflow ครับจะมี tools ให้ง่ายขึ้นในการจับบทสนทนาเพื่อการตอบกลับ ผมเคยทำไว้อันนึงทดสอบใช้สั่งของผ่าน line
ส่วนหาก server on premise เราเป็น windows ต้องการสร้าง service จาก node.js app เราก็ใช้ Quick Windows Service มาช่วยสร้าง service เพื่อ start auto เมื่อ reboot ถ้าเป็น ubuntu ก็เขียนสร้าง systemctl start yournodejsapp.service เอาก็ได้ครับ
https://github.com/tallesl/qckwinsvc
แก้ไข qckwinsvc ด้วยเพราะเมื่อมีการสร้างไฟล์จะสร้างใน workingdirectory
Developer Project : IoT Phuket Lab
https://iotphuketlab.home.blog/
https://medium.com/@aegkaluk
https://www.facebook.com/iotphuket/
https://www.youtube.com/user/MrAegkaluk
https://sites.google.com/view/iot-phuket-lab-documents
https://pantip.com/profile/368674#topics
แวะเยี่ยมชมสินค้าของทางร้าน
https://www.phuket-it.com/iotphuketlab/
https://www.lazada.co.th/shop/phuket-bike-lover
https://shopee.co.th/aegkaluk