noppruts

สร้างบอต LINE ตอบอัตโนมัติด้วย n8n: ตั้งแต่สร้าง channel ถึงตอบกลับ

คำตอบสั้น: บอต LINE ตอบอัตโนมัติด้วย n8n ต้องมี 3 ส่วน: (1) webhook ที่ LINE ส่งเหตุการณ์มา (2) การตรวจว่ามาจาก LINE จริง (3) การตอบกลับด้วย replyToken

ตรวจข้อมูลเมื่อ 2026-10-10 จากเอกสารทางการและโค้ดต้นฉบับของโหนดชุมชน n8n-nodes-line-messaging ส่วนการตั้งค่าบนหน้าจอ LINE Developers Console อาจเปลี่ยน ผมไม่ได้ทดสอบทั้งขั้นตอนกับ channel จริงในบทความนี้

ขั้นตอน

  1. สร้าง channel: LINE Developers Console → Provider → Messaging API channel เก็บ Channel access token และ Channel secret ใส่ใน Credentials ของ n8n
  2. เพิ่มโหนด Line Messaging Trigger เลือกเหตุการณ์ "Message" แล้วคัดลอก URL ของ webhook (แบบ Production) ไปวางที่ช่อง Webhook URL ใน LINE Developers Console แล้วเปิด "Use webhook"
  3. ตรวจลายเซ็น: โหนดนี้ตรวจให้เองด้วย Channel secret ตามหลักการคือ HMAC-SHA256 ของเนื้อหาดิบเข้ารหัส base64 เทียบกับส่วนหัว x-line-signature ถ้าคุณทำเองด้วย HTTP/Webhook node ต้องใช้เนื้อหาดิบเท่านั้น
  4. เพิ่มโหนด Line Messaging เลือก Operation เป็น Reply แล้วใส่ค่า:
    • Reply Token: {{ $json.replyToken }}
    • Message (Text V2): คุณพิมพ์ว่า: {{ $json.message.text }}
  5. ทดสอบ: เพิ่มบัญชีเป็นเพื่อน แล้วพิมพ์ข้อความ ควรได้ข้อความตอบกลับ

แต่ละเหตุการณ์ออกมาเป็นหนึ่งรายการ (item) มีฟิลด์ type, replyToken, source, message และ destination ตามโครงสร้างเหตุการณ์ของ LINE

ข้อผิดพลาดที่พบบ่อย

ถ้าบอตต้องตอบหลายร้อยคนพร้อมกัน ให้ตรวจโควตาข้อความและขีดจำกัดของแผน n8n ที่ใช้ด้วย (ดู n8n Cloud หรือโฮสต์เอง)

คำถามที่พบบ่อย

ทำไมต้องตรวจลายเซ็น webhook?

เพื่อยืนยันว่าคำขอที่เข้ามาส่งจาก LINE จริง LINE ส่งลายเซ็นมาในส่วนหัว x-line-signature ซึ่งคำนวณด้วย HMAC-SHA256 ของเนื้อหาดิบกับ Channel secret แล้วเข้ารหัส base64

replyToken ใช้ได้กี่ครั้ง?

ใช้เพื่อตอบเหตุการณ์นั้นเหตุการณ์เดียวและหมดอายุเร็ว ถ้าต้องส่งภายหลังให้ใช้ Push แทน ตรวจรายละเอียดในเอกสาร LINE

ต้องมี URL สาธารณะไหม?

ต้องมี URL แบบ HTTPS ที่เข้าถึงได้จากอินเทอร์เน็ต เพราะ LINE เรียกเข้ามาที่ webhook ของคุณ

เขียนโดย noppruts (นพรุจ) · ตรวจข้อมูลล่าสุด 2026-10-10 · คู่มือทั้งหมด