LINE Notify ได้ยุติการให้บริการไปแล้ว (เมื่อวันที่ 1 เมษายน 2025 ที่ผ่านมา) น่าเสียดายมากสำหรับสาย Automation
ปัจจุบันทาง LINE ให้ย้ายไปใช้ Messaging API ผ่าน LINE Official Account (LINE OA)
แม้จะฟังดูเหมือนเป็นบัญชีธุรกิจ แต่จริงๆ เราสามารถสร้างขึ้นมาเพื่อใช้ส่งข้อความแจ้งเตือนส่วนตัวหรือใช้ในกลุ่มเล็กๆ ได้ฟรี (ภายในโควตาข้อความฟรีต่อเดือน)
ถ้าคุณอยากทำระบบส่งข้อความตามวันเวลาที่ตั้งไว้ผ่าน Google Sheets โดยใช้ Messaging API แทน LINE Notify:
1. เตรียม LINE OA และ Messaging API
ไปที่ LINE Developers Console
https://developers.line.biz/console/
สร้าง Provider และสร้างช่องทาง Messaging API
คุณจะได้ Channel Access Token (อันนี้สำคัญมาก เปรียบเสมือนกุญแจ)
หา User ID ของคุณหรือเพื่อน (จะได้จากหน้า Messaging API ในเว็บ Console หรือใช้สคริปต์ดึงค่ามา)
2. เตรียม Google Sheets
สร้างตารางง่ายๆ 3 คอลัมน์:
Column A: วันเวลาที่ต้องการส่ง (Format: YYYY-MM-DD HH:mm)
Column B: ข้อความที่จะส่ง
Column C: สถานะ (เช่น “Pending” หรือ “Sent”)
3. เขียน Google Apps Script (GAS)
ใน Google Sheets ให้ไปที่ Extensions > Apps Script แล้ววางโค้ดลักษณะนี้ครับ:
JavaScript
function sendScheduledMessages() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var now = new Date();
var token = “ใส่_CHANNEL_ACCESS_TOKEN_ของคุณที่นี่”;
for (var i = 1; i < data.length; i++) {
var scheduledTime = new Date(data[i][0]);
var message = data[i][1];
var status = data[i][2];
// ถ้าเวลาปัจจุบันเลยเวลาที่ตั้งไว้ และยังไม่ได้ส่ง
if (now >= scheduledTime && status !== “Sent”) {
var url = “https://api.line.me/v2/bot/message/push”;
var payload = {
“to”: “ใส่_USER_ID_ผู้รับที่นี่”,
“messages”: [{“type”: “text”, “text”: message}]
};
var options = {
“method”: “post”,
“headers”: {
“Content-Type”: “application/json”,
“Authorization”: “Bearer ” + token
},
“payload”: JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
sheet.getRange(i + 1, 3).setValue(“Sent”); // อัปเดตสถานะว่าส่งแล้ว
}
}
}
4. ตั้งเวลาทำงาน (Triggers)
ในหน้า Apps Script ให้คลิกรูป นาฬิกา (Triggers) ด้านซ้ายมือ
กด + Add Trigger
เลือกฟังก์ชัน sendScheduledMessages
เลือก Time-driven > Minutes timer > Every 1 minute (เพื่อให้สคริปต์มาเช็คตารางงานทุกนาที)
ข้อดีของวิธีนี้:
ฟรี: ภายใต้โควตาข้อความฟรีของ LINE OA (ปัจจุบันให้ค่อนข้างเยอะสำหรับใช้ส่วนตัว)
แม่นยำ: ทำงานอัตโนมัติบน Cloud ของ Google ไม่ต้องเปิดคอมทิ้งไว้
ยืดหยุ่น: แก้ไขข้อความหรือวันเวลาในมือถือผ่านแอป Google Sheets ได้เลย
เนื่องจากคุณมีพื้นฐานด้าน PHP และ JavaScript อยู่แล้ว การจัดการเรื่อง JSON Payload และ HTTP POST ใน Apps Script แบบนี้ น่าจะทำได้สบายมากครับ
อยากให้ผมช่วยขยายความส่วนไหนเป็นพิเศษไหมครับ เช่น วิธีการหา User ID หรือการตั้งค่าใน LINE Developers?