คู่มือ LINE Messaging API: ประเภทข้อความ webhook และราคาต่อข้อความ
คู่มือ LINE Messaging API สำหรับนักพัฒนาและฝ่าย IT: ระบบรับส่งอะไรได้บ้าง ตรวจลายเซ็น webhook อย่างไร ค่าข้อความในไทยเท่าไร และตัวอย่างบอต Node.js ที่ใช้งานได้จริง
สรุปสำคัญ
- Messaging API เชื่อม LINE Official Account เข้ากับระบบของคุณ LINE ส่งเหตุการณ์มาทาง webhook และระบบของคุณส่งข้อความกลับ
- ข้อความตอบกลับ (reply) ไม่นับโควตา ส่วน push, multicast, broadcast และ narrowcast นับตามจำนวนคนที่ได้รับ
- ราคาในไทย (ณ ตุลาคม 2026): ฟรี 300 ข้อความต่อเดือน, Basic 1,280 บาท 15,000 ข้อความ, Pro 1,780 บาท 35,000 ข้อความ ยังไม่รวม VAT 7%
- ตรวจ header `x-line-signature` ด้วย channel secret ทุกครั้งก่อนเชื่อข้อมูลจาก webhook
LINE Messaging API คือช่องทางที่ซอฟต์แวร์ของคุณใช้คุยกับลูกค้าผ่าน LINE Official Account ถ้าไม่มี API พนักงานต้องตอบแชทเองใน LINE Official Account Manager เมื่อเชื่อม API แล้ว ระบบจองคิวยืนยันนัดได้เอง ร้านค้าแจ้งสถานะคำสั่งซื้อได้เอง และแชทบอตตอบคำถามเดิมเป็นครั้งที่ร้อยได้โดยไม่ต้องมีใครพิมพ์
คู่มือนี้อธิบายว่า API ทำอะไรได้ มีข้อความประเภทไหน webhook ทำงานอย่างไรและตรวจสอบอย่างไร ค่าข้อความในไทยเท่าไร และมีตัวอย่างบอต Node.js ขนาดเล็กที่รันได้จริง เขียนโดยทีมที่รับทำ LINE chatbot และระบบ Messaging API และใช้ API นี้ส่งข้อความการจองของ FoxConnect ทุกวัน ถ้ายังเลือกไม่ได้ว่าจะใช้เครื่องมือไหนของ LINE อ่านLINE OA, LIFF และ LINE MINI App ต่างกันอย่างไรก่อน
LINE Messaging API ทำอะไรได้
API ทำงานสองทิศทาง:
- จาก LINE มาหาคุณ (webhook) เมื่อลูกค้าเพิ่มเพื่อน ส่งข้อความ แตะปุ่มในริชเมนูหรือปุ่มในข้อความ LINE จะส่งคำขอ HTTPS พร้อมข้อมูลเหตุการณ์ไปยัง URL ที่คุณกำหนด
- จากคุณไปหา LINE (เรียก API) เซิร์ฟเวอร์ของคุณใช้ channel access token เรียก API เพื่อส่งข้อความ อ่านชื่อที่แสดงของลูกค้า เปลี่ยนริชเมนู และอื่น ๆ
การตั้งค่าทำใน LINE Developers Console โดยสร้าง Messaging API channel ที่ผูกกับ Official Account ของคุณ จะได้ channel secret (ใช้ตรวจ webhook) และ channel access token (ใช้เรียก API)
ประเภทข้อความที่ส่งได้
หนึ่งคำขอส่งได้สูงสุดห้าข้อความ ประเภทหลัก ๆ มีดังนี้:
| ประเภท | คืออะไร | ใช้ทำอะไร |
|---|---|---|
| Text | ข้อความธรรมดา ใส่อีโมจิได้ | ตอบคำถาม ยืนยันการจอง |
| Sticker | สติกเกอร์ LINE | ตอบกลับแบบเป็นกันเอง |
| Image, video, audio | ไฟล์จาก URL แบบ HTTPS | เมนู วิดีโอสอนใช้งาน |
| Location | หมุดแผนที่พร้อมที่อยู่ | บอกทางไปร้าน |
| Imagemap | รูปที่แตะได้หลายจุด | โปรโมชัน |
| Template | ปุ่ม ยืนยัน หรือ carousel | ให้ลูกค้าเลือกแบบง่าย |
| Flex Message | เลย์เอาต์ที่ออกแบบเองด้วย JSON | ใบเสร็จ การ์ดการจอง |
ทุกประเภทใส่ปุ่ม quick reply ที่ขึ้นเหนือแป้นพิมพ์ได้ ถ้าต้องการข้อความแบบการ์ด เช่น สรุปการจองพร้อมปุ่ม “เปลี่ยนเวลา” ให้ใช้ Flex Message
Webhook และการตรวจลายเซ็น
ทุกคำขอ webhook มี header x-line-signature ซึ่งเป็นค่า HMAC-SHA256 ของ body ดิบ ใช้ channel secret เป็นกุญแจ แล้วเข้ารหัสแบบ Base64 ต้องตรวจค่านี้ก่อนใช้ข้อมูลใด ๆ ใน body ถ้าไม่ตรวจ ใครก็ตามที่รู้ URL ของ webhook จะส่งข้อความปลอมเข้าระบบในนามลูกค้าได้
กฎสามข้อที่ช่วยลดปัญหาภายหลัง:
- คำนวณลายเซ็นจาก body ดิบ ก่อนที่ JSON parser จะแตะ body และเทียบค่าด้วยฟังก์ชันแบบ constant-time ซึ่ง
middleware()และvalidateSignature()ของ SDK ทำให้ทั้งสองอย่าง - ตอบ HTTP 200 ให้เร็ว แล้วค่อยทำงานที่ใช้เวลานานทีหลัง หรือส่งเข้าคิว
- เตรียมรับเหตุการณ์ซ้ำ ถ้าเปิด webhook redelivery ไว้ LINE อาจส่งเหตุการณ์เดิมมาอีกครั้ง ทุกเหตุการณ์มี
webhookEventIdให้เก็บไว้และข้ามเหตุการณ์ที่ทำไปแล้ว เรื่องนี้สำคัญมากกับงานที่เกี่ยวกับเงินหรือแต้มสะสม
ข้อความตอบกลับใช้ replyToken จากเหตุการณ์ ใช้ได้ครั้งเดียวและใช้ได้ไม่นานหลังเกิดเหตุการณ์ จึงควรตอบทันที ส่วนข้อความที่ส่งทีหลังให้ใช้ push
ราคา LINE Messaging API ต่อข้อความในไทย (ณ ตุลาคม 2026)
Messaging API ไม่มีค่าบริการแยก ข้อความจะนับตามแพ็กเกจ LINE Official Account ตามหน้า LINE for Business ประเทศไทย ที่ตรวจเมื่อ 29 ตุลาคม 2026:
| แพ็กเกจ | ราคาต่อเดือน | ข้อความที่รวมอยู่ | ข้อความเพิ่ม |
|---|---|---|---|
| ฟรี | 0 บาท | 300 | ส่งเพิ่มไม่ได้ |
| Basic | 1,280 บาท | 15,000 | 0.10 บาทต่อข้อความ |
| Pro | 1,780 บาท | 35,000 | 0.06 บาทต่อข้อความ |
ราคายังไม่รวม VAT 7% วิธีนับข้อความตามหน้าราคา Messaging API ของ LINE:
- ข้อความตอบกลับ (reply) ไม่นับ ส่วน push, multicast, broadcast และ narrowcast นับ
- นับตามจำนวนผู้รับ ไม่ใช่จำนวนกล่องข้อความ push สี่กล่องถึงคนเดียวนับหนึ่งข้อความ ส่วน push เข้ากลุ่มห้าคนนับห้าข้อความ
- ข้อความถึงคนที่บล็อกบัญชีไม่นับ
- เมื่อโควตาหมด การส่งจะได้ error แพ็กเกจ Basic และ Pro ตั้งให้ส่งข้อความเพิ่มได้ถึงเพดานที่กำหนดใน LINE Official Account Manager
LINE กำหนดแพ็กเกจแยกตามประเทศและปรับเปลี่ยนเป็นระยะ (ญี่ปุ่นปรับค่าข้อความเพิ่มเมื่อ 1 ตุลาคม 2026 และไต้หวันปรับแพ็กเกจวันที่ 1 พฤศจิกายน 2026) ก่อนวางงบแคมเปญใหญ่ควรตรวจหน้าราคาของไทยอีกครั้ง
ตัวอย่างบอตด้วย Node.js
ตัวอย่างนี้ใช้ @line/bot-sdk ของ LINE เวอร์ชัน 11 (ล่าสุด ณ ตุลาคม 2026 ต้องใช้ Node.js 22 ขึ้นไป) ร่วมกับ Express บอตตรวจลายเซ็นแล้วตอบข้อความเดิมกลับเป็น reply ซึ่งไม่เสียโควตา
npm install @line/bot-sdk express
// server.mjs
import express from 'express';
import { LineBotClient, middleware, SignatureValidationFailed } from '@line/bot-sdk';
const client = LineBotClient.fromChannelAccessToken({
channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN,
});
const app = express();
// middleware() อ่าน body ดิบ ตรวจ x-line-signature ด้วย channel secret แล้วจึงแปลง JSON
// ห้ามใส่ express.json() ไว้ก่อน route นี้
app.post('/webhook', middleware({ channelSecret: process.env.LINE_CHANNEL_SECRET }), async (req, res) => {
for (const event of req.body.events) {
if (event.type === 'message' && event.message.type === 'text') {
await client.replyMessage({
replyToken: event.replyToken,
messages: [{ type: 'text', text: `คุณพิมพ์ว่า: ${event.message.text}` }],
});
}
}
res.sendStatus(200);
});
// ลายเซ็นผิดหรือไม่มีลายเซ็น: ปฏิเสธคำขอ
app.use((err, req, res, next) => {
if (err instanceof SignatureValidationFailed) return res.sendStatus(401);
next(err);
});
app.listen(3000);
บอตตัวอย่างนี้ตอบกลับก่อนแล้วจึงส่ง 200 ซึ่งใช้ได้กับการตอบข้อความสั้น ๆ บอตที่ใช้งานจริงควรทำตามสามข้อด้านบน คือส่ง 200 ทันที นำแต่ละ event เข้าคิว และข้าม webhookEventId ที่เคยจัดการแล้ว
ใส่ URL แบบ HTTPS ของ /webhook ใน Developers Console เปิด “Use webhook” แล้วกด “Verify” ถ้าต้องการส่งข้อความทีหลัง เช่น ข้อความเตือนนัด ให้ใช้ client.pushMessage({ to: userId, messages: [...] }) ซึ่งนับโควตา ดูตัวอย่างการ push เข้ากลุ่มได้ในคู่มือใช้อะไรแทน LINE Notify
งานจริงอยู่ตรงไหน
บอตตอบข้อความเดิมทำเสร็จได้ในบ่ายเดียว งานจริงของโครงการคือสิ่งที่อยู่ข้างหลัง: ผูกผู้ใช้ LINE กับข้อมูลลูกค้าโดยได้รับความยินยอม กฎการจอง การส่งซ้ำที่ไม่ทำให้ตัดเงินสองครั้ง และให้พนักงานรับแชทต่อจากบอตได้ เราเขียนเรื่องข้อมูลลูกค้าไว้ในการเชื่อม LINE เข้ากับ CRM และกรณีศึกษา FoxConnect แสดงระบบที่ใช้งานจริงซึ่งสร้างด้วยวิธีนี้
ถ้าต้องการให้เราพัฒนาแชทบอตหรือเชื่อม Messaging API กับระบบของธุรกิจคุณ ดูบริการรับทำ LINE chatbot หรือภาพรวมบริการรับทำ LINE OA, LIFF และ MINI App
คำถามที่พบบ่อย
LINE Messaging API ราคาเท่าไร
ตัว API ไม่มีค่าใช้จ่าย แต่ข้อความนับตามแพ็กเกจ LINE Official Account ณ ตุลาคม 2026 ในไทย: แพ็กเกจฟรีส่งได้ 300 ข้อความต่อเดือน, Basic 1,280 บาท 15,000 ข้อความ (ข้อความเพิ่ม 0.10 บาท), Pro 1,780 บาท 35,000 ข้อความ (ข้อความเพิ่ม 0.06 บาท) ราคายังไม่รวม VAT 7% และข้อความตอบกลับไม่นับ
ถ้าข้อความหมดโควตาจะเกิดอะไรขึ้น
คำสั่ง push หรือ broadcast จะได้ error และข้อความไม่ถูกส่ง แพ็กเกจ Basic และ Pro ตั้งให้ส่งข้อความเพิ่มแบบเสียเงินได้ถึงเพดานที่กำหนดใน LINE Official Account Manager ส่วนแพ็กเกจฟรีส่งเพิ่มไม่ได้
ควรใช้ SDK ตัวไหนกับ Node.js
ใช้ @line/bot-sdk ของ LINE เอง เวอร์ชัน 11 (ล่าสุด ณ ตุลาคม 2026) ต้องใช้ Node.js 22 ขึ้นไป
Messaging API ใช้ในกลุ่มไลน์ได้ไหม
ได้ ถ้าเปิดให้บัญชีเข้ากลุ่มได้ webhook จะได้ group ID และระบบตอบกลับหรือ push เข้ากลุ่มได้ ข้อความที่ส่งเข้ากลุ่มนับตามจำนวนสมาชิกที่ได้รับ