การแจ้งเตือนเข้า LINE ทันทีที่มีข้อมูลใหม่ เป็นฟีเจอร์ที่ทำให้ระบบดูโปรและใช้งานจริง บทความนี้จะสอนส่งข้อความเข้า LINE ด้วย Google Apps Script โดยใช้ LINE Messaging API (วิธีที่ใช้ได้ในปัจจุบัน)
═══════════════════════════════════════
📌 1. หมายเหตุสำคัญก่อนเริ่ม
═══════════════════════════════════════
เดิมหลายคนใช้ "LINE Notify" แต่บริการนี้ถูกปิดให้บริการแล้ว
ปัจจุบันจึงต้องใช้ "LINE Messaging API" แทน ซึ่งฟรีเช่นกัน
(ส่งข้อความ push ได้ตามโควต้าฟรีต่อเดือน)
═══════════════════════════════════════
🔑 2. เตรียม LINE Messaging API
═══════════════════════════════════════
ขั้นตอน (ทำครั้งเดียว):
1. เข้า developers.line.biz แล้วล็อกอินด้วยบัญชี LINE
2. สร้าง Provider แล้วสร้าง Channel แบบ "Messaging API"
3. ในหน้า Channel จะได้ 2 สิ่งสำคัญ:
• Channel access token (โทเคนสำหรับส่งข้อความ)
• เพิ่มเพื่อน (add) บอทของเราด้วย QR code
4. หา "User ID" ของผู้รับ (ดูได้ในหน้า Channel > Your user ID)
*** เก็บ Channel access token เป็นความลับ อย่าเปิดเผยต่อสาธารณะ ***
═══════════════════════════════════════
💬 3. ส่งข้อความเข้า LINE (Push Message)
═══════════════════════════════════════
GAS ส่ง HTTP request ไปยัง LINE ด้วย UrlFetchApp
function sendLineMessage(text) {
var token = "วาง_CHANNEL_ACCESS_TOKEN";
var userId = "วาง_USER_ID_ของผู้รับ";
var url = "https://api.line.me/v2/bot/message/push";
var payload = {
"to": userId,
"messages": [{ "type": "text", "text": text }]
};
var options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + token
},
"payload": JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
ทดสอบด้วยการเรียก:
function testLine() {
sendLineMessage("ทดสอบแจ้งเตือนจาก Google Apps Script");
}
═══════════════════════════════════════
🔔 4. แจ้งเตือน LINE เมื่อมีข้อมูลใหม่
═══════════════════════════════════════
ผสมกับการบันทึกฟอร์ม: บันทึกลง Sheet แล้วส่ง LINE ทันที
function submitAndNotify(name, message) {
var sheet = SpreadsheetApp.openById("SHEET_ID").getSheetByName("data");
// 1) บันทึกข้อมูล
sheet.appendRow([new Date(), name, message]);
// 2) แจ้งเตือนเข้า LINE
var notify = "📥 มีข้อความใหม่\nจาก: " + name + "\nข้อความ: " + message;
sendLineMessage(notify);
}
═══════════════════════════════════════
🧩 5. อธิบายส่วนสำคัญของโค้ด
═══════════════════════════════════════
• UrlFetchApp.fetch(url, options) → ส่ง HTTP request ออกไปภายนอก
• method: "post" → ส่งแบบ POST
• Authorization: "Bearer " + token → ยืนยันตัวตนด้วยโทเคน
• JSON.stringify(payload) → แปลง object เป็นข้อความ JSON
• "\n" ในข้อความ → ขึ้นบรรทัดใหม่ใน LINE
═══════════════════════════════════════
📱 6. ส่งข้อความหลายคน (Broadcast/Multicast)
═══════════════════════════════════════
ส่งหาหลายคนพร้อมกันด้วย multicast (เปลี่ยน endpoint และใช้ "to" เป็น array)
function sendMulticast(userIds, text) {
var token = "วาง_CHANNEL_ACCESS_TOKEN";
var url = "https://api.line.me/v2/bot/message/multicast";
var payload = {
"to": userIds, // array ของ user id เช่น ["Uxxx", "Uyyy"]
"messages": [{ "type": "text", "text": text }]
};
UrlFetchApp.fetch(url, {
"method": "post",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer " + token
},
"payload": JSON.stringify(payload)
});
}
═══════════════════════════════════════
✅ 7. สรุป
═══════════════════════════════════════
• ใช้ LINE Messaging API (LINE Notify ปิดแล้ว)
• ต้องมี Channel access token + User ID ของผู้รับ
• ส่งด้วย UrlFetchApp.fetch ไปที่ api.line.me
• ผสมกับ Sheet เพื่อแจ้งเตือนอัตโนมัติเมื่อมีข้อมูลใหม่
• เก็บโทเคนเป็นความลับเสมอ
จำไว้: การแจ้งเตือนเรียลไทม์เข้า LINE ทำให้ระบบของคุณมีชีวิตและใช้งานจริงได้ทันที 💚