วิธีติดตั้ง Webhook (Setup)
การเตรียม Backend รอนั่งรับข้อมูล Webhook นั้นง่ายแสนง่าย เรามีวิธีผูกสายเชื่อมต่อเพียง 3 ขั้นตอนจากหน้า Dashboard ของคุณ
🛠️ ขั้นตอนที่ 1: เตรียม Endpoint ทางเข้าของคุณ
ก่อนอื่น Backend หรือ API Server (Node/Go/Python/PHP) ของคุณจะต้องเปิดประตูรับ HTTP POST กว้างๆ ไว้ 1 บาน พร้อมตอบกลับ HTTP 2xx เสมอเมื่อมีของมาหย่อน
ลักษณะของ Endpoint ทางเข้า (ตัวอย่าง Node.js):
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 มา!
- เข้าไปที่เมนู Webhooks ใน Dashboard
- คลิกปุ่ม Create Webhook
- กรอกตัวแปรให้ครบ:
- Endpoint URL: วางลิงก์ที่คุณเปิดเมื่อตะกี้ (เช่น
https://your-domain.com/api/webhook/rawpush) - Subscribed Events: เลือก Events ที่คุณต้องการรับ
- กลุ่ม Connections —
connection.opened,connection.closed,connection.authenticated,connection.auth_failed - กลุ่ม Channels —
channel.subscribed,channel.unsubscribed,channel.occupied,channel.vacated - กลุ่ม Messages —
message.published,message.rejected,client_event - กลุ่ม System —
webhook.test
- กลุ่ม Connections —
- Endpoint URL: วางลิงก์ที่คุณเปิดเมื่อตะกี้ (เช่น
- คลิก 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:
- คลิกไอคอน ✏️ ข้างรายการ events ของ webhook ที่ต้องการแก้ไข
- เลือก/ยกเลิก events ตามต้องการ
- คลิก Save Events เพื่อบันทึก
การเปลี่ยนแปลงจะมีผลทันที — ไม่ต้อง restart หรือ redeploy อะไรทั้งนั้น
การทดสอบระหว่างพัฒนา (Localhost)
หากคุณกำลังพัฒนาบน Localhost ที่ยังไม่มี Domain สาธารณะ คุณไม่สามารถใส่ http://localhost:3000 ไปใน Dashboard RawPush ได้ เพราะโลกภายนอกเข้าถึง localhost ของคุณไม่ได้!
แนะนำให้ใช้ tunneling tool อย่าง ngrok (ngrok http 3000) หรือ Cloudflare Tunnel เพื่อสร้าง public URL ชั่วคราวสำหรับรับ Webhook
