ในแต่ละวันของคุณครูและคนทำงาน มักจะมีภารกิจที่ต้องทำมากมายจนบางครั้งงานชิ้นสำคัญหรือเส้นตาย (Deadline) ก็อาจจะเลื่อนหลุดสายตาไปได้ง่ายๆ ค่ะ แม้ว่าบริการยอดฮิตในอดีตอย่าง LINE Notify จะปิดตัวลงไปแล้ว แต่รู้ไหมคะว่าเรายังสามารถใช้เครื่องมือฟรีที่มีความยั่งยืนและปลอดภัยกว่าอย่าง LINE Messaging API (โหมดส่งข้อความฟรี 200 ข้อความ/เดือน) มาร่วมร่างกับ Google Sheets เพื่อทำระบบแจ้งเตือนงานค้างส่งตรงเข้ามือถือเราได้ฟรี 100% ค่ะ
วันนี้เราจะมาสร้างเลขาส่วนตัวในไลน์คอยเตือนใจไม่ให้ลืมงานกันใน 4 ขั้นตอนง่ายๆ ค่ะ
ขั้นตอนที่ 1: ตั้งค่า LINE Developers เพื่อสร้างบอทแจ้งเตือน
เราจะสร้างบัญชี LINE Official Account (LINE OA) ขนาดเล็กเพื่อทำหน้าที่เป็นบอทคอยส่งข้อความเตือนเราค่ะ
- ไปที่เว็บ LINE Developers แล้วเข้าสู่ระบบด้วยบัญชี LINE ส่วนตัวของคุณ
- กดสร้าง Provider (ตั้งชื่อเป็นชื่อเราหรือชื่อโปรเจกต์ เช่น “MyTaskAlert”)
- เลือกสร้าง Messaging API Channel กรอกข้อมูลทั่วไป (ชื่อบอท, อีเมล) ให้ครบถ้วนแล้วกดสร้าง
- เมื่อสร้างเสร็จ ให้คลิกเข้าไปที่แท็บ Messaging API เลื่อนลงมาล่างสุด ตรงหัวข้อ Channel access token ให้กดปุ่ม Issue แล้วคัดลอกรหัสยาวๆ นั้นเก็บไว้ค่ะ
- สแกน QR Code ที่ปรากฏในหน้านั้นเพื่อ “เพิ่มเพื่อน” กับบอทที่เราเพิ่งสร้างขึ้นมาในมือถือค่ะ
- ย้ายไปที่แท็บ Basic settings เลื่อนลงล่างสุด คัดลอกรหัสในช่อง Your user ID เก็บไว้ (รหัสนี้คือที่อยู่สำหรับให้บอทยิงข้อความตรงมาหา LINE ส่วนตัวของเราค่ะ)
ขั้นตอนที่ 2: เตรียมตารางงานบน Google Sheets
สร้าง Google Sheets ขึ้นมา 1 ไฟล์ และตั้งชื่อคอลัมน์ในแถวแรก (แถวที่ 1) ดังนี้ค่ะ:
- คอลัมน์ A: ชื่องาน / ภารกิจ
- คอลัมน์ B: วันกำหนดส่ง (Deadline) (แนะนำให้จัดรูปแบบช่องนี้เป็น วัน/เดือน/ปี ค.ศ.)
- คอลัมน์ C: สถานะ (เช่น “ยังไม่ทำ” หรือ “เสร็จแล้ว”)
ขั้นตอนที่ 3: เขียนโค้ดสคริปต์สั่งเช็กงานและแจ้งเตือน
เราจะเขียนคำสั่งให้ระบบคอยเข้ามาตรวจดูตารางงาน และส่งไลน์หาเราหากพบงานที่ยังไม่เสร็จค่ะ
- ที่หน้า Google Sheets ไปที่เมนู ส่วนขยาย (Extensions) -> Apps Script
- ลบโค้ดเริ่มต้นออกให้หมด แล้ววางโค้ดชุดนี้ลงไปแทนค่ะ:
JavaScript
// คัดลอกข้อมูลจากขั้นตอนที่ 1 มาวางในเครื่องหมายอัญประกาศนะคะ
const LINE_ACCESS_TOKEN = "วาง_Channel_access_token_ตรงนี้ค่ะ";
const MY_LINE_USER_ID = "วาง_Your_user_id_ตรงนี้ค่ะ";
function checkAndAlertTasks() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
const today = new Date();
// ตั้งค่าเวลาวันนี้ให้เป็น 00:00 น. เพื่อให้เปรียบเทียบเฉพาะวันที่ได้แม่นยำ
today.setHours(0,0,0,0);
let alertMessage = "🔔 [แจ้งเตือนงานค้างชำระ/งานใกล้เส้นตาย]\n\n";
let hasPendingTask = false;
// ลูปเช็กข้อมูลตั้งแต่แถวที่ 2 เป็นต้นไป
for (let i = 1; i < data.length; i++) {
let taskName = data[i][0];
let deadline = new Date(data[i][1]);
let status = data[i][2];
deadline.setHours(0,0,0,0);
// เงื่อนไข: ถ้าสถานะคือ "ยังไม่ทำ" และ วันกำหนดส่งเท่ากับวันนี้ หรือผ่านไปแล้ว
if (status === "ยังไม่ทำ" && deadline <= today) {
let formattedDate = Utilities.formatDate(deadline, "GMT+7", "dd/MM/yyyy");
alertMessage += `📌 งาน: ${taskName}\n📅 กำหนดส่ง: ${formattedDate}\n\n`;
hasPendingTask = true;
}
}
// ถ้ามีงานค้าง ให้ส่งข้อความเข้า LINE
if (hasPendingTask) {
sendLinePush(MY_LINE_USER_ID, alertMessage.trim());
}
}
// ฟังก์ชันส่งข้อความผ่าน LINE Messaging API
function sendLinePush(toId, text) {
const url = "https://api.line.me/v2/bot/message/push";
const payload = {
"to": toId,
"messages": [{ "type": "text", "text": text }]
};
const options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + LINE_ACCESS_TOKEN
},
"payload": JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
- แทนที่ค่าในตัวแปร
LINE_ACCESS_TOKENและMY_LINE_USER_IDด้วยรหัสที่คุณคัดลอกมาในขั้นตอนแรกค่ะ - กดปุ่ม บันทึก (Save) (ไอคอนแผ่นดิสก์) จากนั้นลองเลือกฟังก์ชัน
checkAndAlertTasksแล้วกด เรียกใช้ (Run) ดูค่ะ (ระบบจะขอสิทธิ์การเข้าถึงข้อมูลในครั้งแรก ให้กดอนุมัติสิทธิ์ให้เรียบร้อยค่ะ) - หากข้อมูลในชีตเข้าเงื่อนไข บอทจะเด้งเตือนใน LINE ของคุณทันทีค่ะ
ขั้นตอนที่ 4: ตั้งเวลาให้ระบบทำงานอัตโนมัติทุกวัน (Triggers)
เพื่อให้ระบบทำงานเองโดยที่เราไม่ต้องมากดรันโค้ดทุกวัน ให้เราตั้งเวลาดังนี้ค่ะ:
- ที่เมนูด้านซ้ายของหน้า Apps Script ให้คลิกที่ไอคอนรูปนาฬิกา “ทริกเกอร์” (Triggers)
- คลิกปุ่ม + เพิ่มทริกเกอร์ (+ Add Trigger) ที่มุมขวาล่าง
- เลือกตั้งค่าดังนี้:
- เลือกฟังก์ชันที่จะเรียกใช้:
checkAndAlertTasks - เลือกแหล่งที่มาของเหตุการณ์:
ตามเวลาที่กำหนด (Time-driven) - เลือกประเภททริกเกอร์ตามเวลา:
เครื่องจับเวลาวัน (Day timer) - เลือกเวลาของวัน: เลือกช่วงเวลาที่คุณต้องการให้ระบบแจ้งเตือน (เช่น 07:00 น. ถึง 08:00 น. เพื่อเตือนรับเช้าวันใหม่)
- เลือกฟังก์ชันที่จะเรียกใช้:
- กด บันทึก (Save) เป็นอันเสร็จสิ้นกระบวนการค่ะ
บทสรุป
เพียงเท่านี้ คุณก็จะได้ระบบแจ้งเตือนภารกิจส่วนตัวที่ทำงานได้อย่างเที่ยงตรงในทุกๆ เช้า โดยระบบจะไปสแกนหาเฉพาะงานที่มีสถานะ “ยังไม่ทำ” และถึงกำหนดส่ง นำมาสรุปยอดส่งตรงเข้า LINE ของคุณทันที ช่วยให้คุณวางแผนวันทำงานได้อย่างมีประสิทธิภาพโดยไม่มีค่าใช้จ่าย และไม่ต้องกังวลเรื่องการลืมงานสำคัญอีกต่อไปค่ะ ลองนำไปปรับใช้กันดูนะคะ



