Linebot บันทึกผลวิ่ง (Virtual Run)

ITTIRIT T.
Apr 24, 2020

--

สืบเนื่องมาจากมีเพื่อนๆในไลน์กลุ่มที่ทำงานรวมตัวกันชวนแข่งวิ่ง virtual run เก็บสะสมระยะทาง โดยการส่งผลวิ่ง(screen shot)จากแอพวิ่งต่างๆ ลงอัลบั้มของแต่ละทีม เมื่อผ่านมาสักพักก็พบปัญหาระยะวิ่งของทีมขาดๆเกินๆ ของแต่ละบุคคลก็รวมได้ไม่ครบ เลยเป็นที่มาของบอท บันทึกผลวิ่ง (Virtual Run) แบบบ้านๆตัวนี้

โดยใช้ google sheet เก็บข้อมูล, google drive เก็บรูปภาพ และใช้ google apps script เป็น webhook

https://gist.githubusercontent.com/itchampclub/5aa471668385a1595123fdf37fe533b5/raw/92591cbc608c0b5d55de390dae2399e6727ab2dc/code.gs

รวม link ล่าสุดกว่า

https://itdev.win/run2020/link.txt

สามารถคัดลอกโค๊ดด้านบนไปประยุกต์ใช้งานได้เลย โดยแก้ไขดังนี้

var channelToken = "----Line Access Token---";
var gdrivefolderId = "--folder id--";
var NotifyToken = "XXXXXXXXXXXXX"; //เปิดใช้ที่ Line : 619
var ss = SpreadsheetApp.openByUrl("https://--sheet-url---/edit");
var sheet1 = ss.getSheetByName("ระยะทาง");
var sheet2 = ss.getSheetByName("บันทึกการส่ง");

ตัวอย่าง sheet เก็บข้อมูล

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

Google drive

สร้าง folder ที่ google drive และกด share ดังรูปด้านล่าง

var driveid = "--folder id--"; //ท้ายสุดของ url คือ folder id

การทำงานคร่าวๆ

  • กดติดตามบอทและเลือกทีม
  • เชิญบอทเข้ากลุ่มที่ต้องการให้แจ้งเตือน flex ทุกครั้งที่มีคนส่งผลเข้าบอท จะ push ส่งต่อไปยังกลุ่ม โดย พิมพ์ gid ในกลุ่มที่ต้องการ บอทจะบันทึก group id ไว้ที่ cell K1 ใน sheet
  • การส่งผล พิมพ์ ส่งผลวิ่ง > ส่งรูป > บอทบันทึกรูป > ส่งระยะวิ่ง > เลือก ส่งผล แก้ไข หรือ ยกเลิก > หากส่งผล บอทจะส่ง flex ผลไปยังกลุ่มที่บันทึก

--

--