เลิกจ้องหน้าจอ! ผูก LINE + Google Sheets ให้แจ้งเตือน “งานเข้า” แบบ Real-time (แจกโค้ดฟรี)

เคยไหมคะ? เปิด Google Forms รับแจ้งซ่อมคอมพิวเตอร์ หรือรับใบลาออนไลน์ แล้วต้องคอยเปิดเข้าไปดูใน Sheets ทุกชั่วโมงว่า “มีใครส่งเรื่องมาหรือยัง?” ถ้าไม่เปิดดูก็ไม่รู้ พอรู้ก็สายเกินไปเสียแล้ว

วันนี้ดิฉันจะพาคุณครูมาปลดล็อกสกิลใหม่ ด้วยการผูก Google Sheets ให้คุยกับ LINE ได้ค่ะ! ทันทีที่มีคนกรอกข้อมูลเข้ามา มือถือเราจะสั่นครืดๆ แจ้งเตือนในกลุ่มไลน์ทันที สะดวก รวดเร็ว และดูโปรสุดๆ

และข่าวดีคือ… ไม่ต้องเขียนโค้ดเก่ง ก็ทำตามได้ใน 4 ขั้นตอนค่ะ!


ระบบนี้เอาไปทำอะไรในโรงเรียนได้บ้าง?

  • ระบบแจ้งซ่อม: ภารโรงหรือครูคอมฯ รู้ทันทีว่าห้องไหนแอร์เสีย/คอมพัง
  • ระบบลงเวลามาสาย: แจ้งเตือนฝ่ายปกครองทันทีที่เด็กมาสาย
  • ระบบจองห้องประชุม: รู้ทันทีว่ามีใครจองห้องไหน เวลาไหน
  • กล่องรับความคิดเห็น: ผอ. รับรู้ข้อเสนอแนะได้แบบ Real-time

วิธีทำฉบับจับมือทำ (4 ขั้นตอน)

1. ขอ “กุญแจ” จาก LINE (Get Token)

เปรียบเสมือนการขออนุญาตให้ระบบเจาะเข้าไปส่งข้อความในกลุ่มไลน์ของเราค่ะ

  1. เข้าไปที่เว็บ LINE Messaging API และล็อกอินด้วยไลน์ของคุณ
  2. ไปที่ “หน้าของฉัน” (My Page) > เลื่อนลงล่างสุดกด “ออก Token” (Generate Token)
  3. ตั้งชื่อบอท (เช่น “แจ้งซ่อม”) และเลือก “กลุ่มไลน์” ที่ต้องการให้แจ้งเตือน
  4. กด “ออก Token” แล้ว คัดลอกรหัสยาวๆ เก็บไว้ให้ดี (ห้ามหายนะคะ เพราะมันดูได้ครั้งเดียว!)
  5. สำคัญ: อย่าลืมเชิญตัว LINE Messaging API เข้าไปอยู่ในกลุ่มไลน์ที่เราเลือกด้วยนะคะ ไม่งั้นมันจะไม่ยอมพูดค่ะ

2. เตรียม Google Sheets

  1. เปิด Google Sheets ที่เชื่อมกับ Google Forms ของเราไว้
  2. จำชื่อชีตไว้ให้แม่นๆ (เช่น Form Responses 1 หรือ การตอบแบบฟอร์ม 1)

3. ใส่สมองกล (Apps Script)

  1. ที่หน้า Google Sheets ไปที่เมนู ส่วนขยาย (Extensions) > Apps Script
  2. ลบโค้ดเก่าทิ้งให้หมด แล้ว Copy โค้ดด้านล่างนี้ไปแปะแทนค่ะ

JavaScript

function sendLineNotify() {
  // 1. ใส่รหัส Token ของคุณที่นี่ (เอามาจากขั้นตอนที่ 1)
  var token = "วางรหัส_Token_ยาวๆ_ของคุณตรงนี้";

  // 2. ตั้งค่าการดึงข้อมูล
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1"); // แก้ชื่อชีตให้ตรง
  var lastRow = sheet.getLastRow();
  var lastCol = sheet.getLastColumn();
  
  // ดึงข้อมูลแถวล่าสุดที่เพิ่งกรอกเข้ามา
  var data = sheet.getRange(lastRow, 1, 1, lastCol).getValues()[0];
  
  // 3. ปรับแต่งข้อความที่จะส่ง (สมมติ: คอลัมน์ B=ชื่อ, C=เรื่องแจ้ง)
  // data[0] คือคอลัมน์ A (Timestamp), data[1] คือคอลัมน์ B, data[2] คือคอลัมน์ C
  var message = "\n🔔 มีรายการแจ้งใหม่เข้ามาครับ!";
  message += "\n📅 เวลา: " + data[0]; // วันเวลา
  message += "\n👤 ผู้แจ้ง: " + data[1]; // ชื่อ
  message += "\n📝 เรื่อง: " + data[2]; // รายละเอียด
  
  // 4. ส่งข้อมูลไปที่ LINE
  sendToLine(message, token);
}

function sendToLine(msg, token){
  var options = {
    "method" : "post",
    "payload" : {"message" : msg},
    "headers" : {"Authorization" : "Bearer " + token}
  };
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

อย่าลืมแก้ตรง วางรหัส_Token และ ชื่อชีต ให้ถูกต้องนะคะ

4. ตั้งเวลาให้ทำงาน (Trigger)

ขั้นตอนนี้คือการสั่งให้โค้ดทำงาน “อัตโนมัติ” ทุกครั้งที่มีคนส่งฟอร์ม

  1. ในหน้า Apps Script มองหาเมรูปนาฬิกาปลุกทางซ้ายมือ (Triggers)
  2. กดปุ่มสีฟ้า “เพิ่มทริกเกอร์” (Add Trigger)
  3. ตั้งค่าตามนี้:
    • ฟังก์ชันที่จะเรียกใช้: sendLineLMessagingAPI
    • แหล่งที่มาของเหตุการณ์: จากสเปรดชีต (From spreadsheet)
    • ประเภทของเหตุการณ์: เมื่อส่งฟอร์ม (On form submit)
  4. กดบันทึก (ระบบจะขออนุญาตเข้าถึงสิทธิ์ ให้กด Allow/Advanced/Go to… ได้เลยค่ะ ปลอดภัยเพราะเป็นสคริปต์เราเอง)

บทสรุป: เหนื่อยครั้งเดียว สบายตลอดไป

เสร็จแล้วค่ะ! ลองทดสอบกรอกฟอร์มดู แล้วคุณจะได้ยินเสียงแจ้งเตือน LINE ดัง “ติ๊ง!” ทันที

การทำระบบนี้อาจจะดูซับซ้อนในครั้งแรก (โดยเฉพาะตอนเห็นโค้ด) แต่เชื่อเถอะค่ะว่าคุ้มค่ามาก เพราะมันเปลี่ยนระบบการทำงานแบบ Passive (รอคนมาเปิดดู) ให้เป็น Active (แจ้งเตือนทันที) ช่วยให้โรงเรียนแก้ปัญหาได้ไวขึ้น และคุณครูเองก็ดูเป็น Professional ด้านไอทีขึ้นมาทันตาเห็นเลยค่ะ!

Scroll to Top