Skip to content

วิธีติดตั้ง Webhook (Setup)

การเตรียม Backend รอนั่งรับข้อมูล Webhook นั้นง่ายแสนง่าย เรามีวิธีผูกสายเชื่อมต่อเพียง 3 ขั้นตอนจากหน้า Dashboard ของคุณ


🛠️ ขั้นตอนที่ 1: เตรียม Endpoint ทางเข้าของคุณ

ก่อนอื่น Backend หรือ API Server (Node/Go/Python/PHP) ของคุณจะต้องเปิดประตูรับ HTTP POST กว้างๆ ไว้ 1 บาน พร้อมตอบกลับ HTTP 2xx เสมอเมื่อมีของมาหย่อน

ลักษณะของ Endpoint ทางเข้า (ตัวอย่าง Node.js):

javascript
app.post('/api/webhook/rawpush', (req, res) => {
    
    // คัดลอกและตรวจสอบ Payload (จะสอนลึกๆ ในบทถัดไป)
    const eventBody = req.body;
    const signature = req.headers['x-webhook-signature'];

    console.log("ได้รับ Webhook:", eventBody.event, eventBody);

    // ห้ามลืมบอก RawPush ว่าได้รับของแล้ว!
    // (ถ้าตอบ 4xx หรือ 5xx นานๆ เราจะส่งของให้ซ้ำอีกจนกว่าจะผ่าน)
    res.status(200).send({ received: true }); 
});

⚙️ ขั้นตอนที่ 2: ตั้งค่าใน Dashboard

เมื่อ Backend พร้อมรับแล้ว ก็หันกลับมาตั้งค่าฝั่ง RawPush ให้ส่ง Webhook มา!

  1. เข้าไปที่เมนู Webhooks ใน Dashboard
  2. คลิกปุ่ม Create Webhook
  3. กรอกตัวแปรให้ครบ:
    • Endpoint URL: วางลิงก์ที่คุณเปิดเมื่อตะกี้ (เช่น https://your-domain.com/api/webhook/rawpush)
    • Subscribed Events: เลือก Events ที่คุณต้องการรับ
      • กลุ่ม Connectionsconnection.opened, connection.closed, connection.authenticated, connection.auth_failed
      • กลุ่ม Channelschannel.subscribed, channel.unsubscribed, channel.occupied, channel.vacated
      • กลุ่ม Messagesmessage.published, message.rejected, client_event
      • กลุ่ม Systemwebhook.test
  4. คลิก Create Webhook — ระบบจะเริ่มทำงานทันที!

เลือก Events เฉพาะที่ต้องการ

แนะนำให้ subscribe เฉพาะ events ที่ Backend คุณต้องการประมวลผลจริงๆ เพื่อลด traffic ที่ไม่จำเป็น เช่น:

  • Data Persistence → subscribe message.published
  • Usage Analytics → subscribe channel.occupied, channel.vacated
  • Security Monitoring → subscribe connection.auth_failed

🔑 ขั้นตอนที่ 3: รับ Webhook Secret

หลังจากที่คุณตั้งค่าสำเร็จและเปิดใช้งาน คุณจะได้รับประแจทองสุดวิเศษชิ้นนึง

Webhook Secret มีหน้าตาคล้าย whsec_xyz123... นี่คือ Key เฉพาะสำหรับ verify webhook (ไม่ได้ใช้เรียก API อะไรทั้งสิ้น)

หน้าที่ของมันมีอย่างเดียวคือ... "ก็อปปี้ Key นี้ไปเก็บใน .env ของ Backend เพื่อใช้ verify signature (X-Webhook-Signature) ที่แนบมากับทุก request ว่ามาจาก RawPush จริงหรือไม่"


✏️ ขั้นตอนที่ 4: แก้ไข Subscribed Events (ทีหลัง)

คุณสามารถแก้ไข events ที่ subscribe ได้ตลอดเวลาจากหน้า Webhooks ใน Dashboard:

  1. คลิกไอคอน ✏️ ข้างรายการ events ของ webhook ที่ต้องการแก้ไข
  2. เลือก/ยกเลิก events ตามต้องการ
  3. คลิก Save Events เพื่อบันทึก

การเปลี่ยนแปลงจะมีผลทันที — ไม่ต้อง restart หรือ redeploy อะไรทั้งนั้น

การทดสอบระหว่างพัฒนา (Localhost)

หากคุณกำลังพัฒนาบน Localhost ที่ยังไม่มี Domain สาธารณะ คุณไม่สามารถใส่ http://localhost:3000 ไปใน Dashboard RawPush ได้ เพราะโลกภายนอกเข้าถึง localhost ของคุณไม่ได้!

แนะนำให้ใช้ tunneling tool อย่าง ngrok (ngrok http 3000) หรือ Cloudflare Tunnel เพื่อสร้าง public URL ชั่วคราวสำหรับรับ Webhook

Released under the MIT License.