LINE Official Account: ตั้งค่า Webhook (Messaging API)

คู่มือ อัปเดต 25/10/2026

ใช้งาน LINE Messaging API webhook บนโฮสติ้งได้ โดยมีเงื่อนไขดังนี้

  • URL ต้องเป็น HTTPS และมี SSL ที่ถูกต้อง (คู่มือ SSL) เช่น https://DOMAIN/line/webhook.php
  • รับคำขอแบบ POST และต้อง ตอบกลับ HTTP 200 อย่างรวดเร็ว
  • ตรวจสอบลายเซ็น x-line-signature ด้วย Channel Secret ทุกครั้ง

ตัวอย่าง PHP (public_html/line/webhook.php)

<?php
$channelSecret = 'YOUR_CHANNEL_SECRET';   // จาก LINE Developers Console

$body      = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_LINE_SIGNATURE'] ?? '';
$expected  = base64_encode(hash_hmac('sha256', $body, $channelSecret, true));

if (!hash_equals($expected, $signature)) {
    http_response_code(400);              // ลายเซ็นไม่ถูกต้อง
    exit;
}

// ตอบ 200 ให้ LINE ทันที
http_response_code(200);
echo 'OK';
if (function_exists('fastcgi_finish_request')) {
    fastcgi_finish_request();
}

// จากนั้นค่อยประมวลผลข้อความ
$data = json_decode($body, true);
foreach ($data['events'] ?? [] as $event) {
    // เช่น ตอบกลับด้วย Reply API, บันทึกลงฐานข้อมูล ฯลฯ
}

ตั้งค่าใน LINE Developers Console

  1. Messaging API › Webhook URL ใส่ URL ข้างต้น
  2. กด Verify — ต้องขึ้น Success
  3. เปิด Use webhook

⚠️ กด Verify แล้วไม่ผ่าน? ตรวจว่า URL เป็น HTTPS และ SSL ถูกต้อง, ไฟล์ตอบกลับ 200, Channel Secret ถูกต้อง และไม่มีการ redirect (เช่น http → https หรือเติม / ท้าย URL)

💡 ถ้าใช้ Node.js / Python ก็ทำได้เช่นกัน โดยรันแอปบน subdomain ผ่าน Nginx Unit (Node.js, Python) และใช้ SDK ของ LINE ซึ่งมีฟังก์ชันตรวจลายเซ็นให้