ดีบัก webhook ของ UnifyPort ด้วย webhook.site
เวลาเชื่อม integration ใหม่ของ UnifyPort คำถามแรกมักไม่ใช่ "logic ของ handler ฉันถูกไหม?" — แต่เป็น "มีอะไรมาถึงฉันบ้างไหม?" webhook.site คือวิธีที่เร็วที่สุดในการตอบคำถามนี้.
มันทำอะไรกันแน่
พอเปิด webhook.site ก็ได้ HTTPS URL แบบใช้แล้วทิ้งทันที. อะไรที่ POST เข้า URL นั้น — ตั้งแต่คำสั่ง curl บรรทัดเดียวจนถึง webhook production จริง — จะปรากฏใน dashboard ครบทั้ง headers, body ดิบ, query string, และ timing. ไม่ต้องสมัคร ไม่ต้องลง. URL อยู่ได้หนึ่งสัปดาห์ในแพ็กฟรี, นานกว่านั้นในแพ็กเสียเงิน.
ใช้ใน integration ของ UnifyPort ตอนไหน
ตรง ๆ เลย: ทุกครั้งที่สงสัยว่าปัญหาอาจไม่ได้อยู่ที่ฝั่งคุณ แต่อยู่ที่ฝั่งเรา. เจาะจงคือสามจังหวะที่เจอบ่อย:
- 1. เช็กการเชื่อมต่อครั้งแรก. ก่อน handler จริงเสร็จ, ให้ชี้ webhook endpoint ของอุปกรณ์ไปที่ URL ของ webhook.site แล้วยิงข้อความทดสอบ. ถ้าอีเวนต์มาถึง แสดงว่าการเชื่อมต่อ, การผูกบัญชี, และ session ของ provider — ทั้งสามชั้น — ปกติดี.
- 2. ไล่จับอีเวนต์ที่หาย. เมื่อ handler ของคุณไม่เห็นอีเวนต์ที่ควรจะเห็น (เช่น Telegram
message.received), เพิ่ม target ที่สองชี้ไปที่ webhook.site ชั่วคราว. ถ้าอีเวนต์ไปถึงที่นั่นแต่ไม่มาที่คุณ บัก อยู่ในโค้ดคุณ; ถ้าทั้งสองฝั่งไม่เห็น ให้เปิด ticket แนบ delivery id. - 3. ดูฟิลด์ที่คุณลืมไปแล้ว. Dashboard แสดง JSON ที่ normalize แล้วเต็ม ๆ ที่เราส่ง — รวมถึง
data.attendees,data.conversation.titleและฟิลด์ทางเลือกอื่น ๆ ที่ไม่ใช่ทุกอีเวนต์จะมี. เร็วกว่ามาเปิดเอกสารอ่านใหม่.
หา X-Device-Signature
เมื่อ target ตั้ง signing secret ไว้, ทุกการส่งจะแนบ header ที่กำหนดเองสามตัว:
ทั้งสามจะอยู่ใน panel Headers ของ webhook.site. ถ้ายังไม่อยากเขียนโค้ดแต่ต้องการพิสูจน์ว่าลายเซ็นถูก ลอง copy timestamp และ raw body แล้วรันผ่าน คู่มือ CyberChef ของเราพร้อม secret ของคุณ — hex ที่ได้ต้องตรงกับ header ทุกไบต์.
เมื่อไม่ควรใช้
อะไรก็ตามที่ใกล้ traffic production: ข้อความลูกค้าจริง, signing secret ที่ใช้งานจริง, PII ที่ไม่ควรนั่งอยู่บน server คนอื่น. URL ของ webhook.site เดาได้และเป็นสาธารณะ — สมมติว่าทุกอย่างที่ post ขึ้นไปคนอื่นอ่านได้. ถ้าต้อง debug บนบัญชีจริงนาน ๆ ให้สลับมาใช้ smee.io หรือ bin ที่ host เอง.
ตัวเลือกอื่นที่เราก็ชอบ
- Pipedream RequestBin — เหมาะกว่าเมื่อต้องดู traffic ที่ช้าลงเป็นชั่วโมง.
- smee.io — ส่งต่อไป localhost ไม่ใช่แค่จับ; เหมาะกว่าสำหรับ loop dev local.
- ngrok — tunnel local เต็มรูปแบบพร้อม inspector ในตัวที่
127.0.0.1:4040. ตัวที่เราเปิดบ่อยที่สุดตอน dev จริง.
คำถามที่พบบ่อย
- webhook.site ปลอดภัยสำหรับ webhook production ไหม?
- ไม่. URL ของ webhook.site เดาได้และ dashboard เป็นสาธารณะ — ใครก็ตามที่รู้ URL อ่าน request ที่จับไว้ได้ทุกอัน. ใช้มันเฉพาะตอน prototype ด้วย secret แบบใช้แล้วทิ้งหรืออีเวนต์ทดสอบที่ไม่มี PII เท่านั้น. สำหรับการ debug ระยะยาวบนบัญชี UnifyPort จริง ให้สลับไปใช้ smee.io หรือ bin ที่ host เอง.
- URL ของ webhook.site อยู่ได้นานแค่ไหน?
- เจ็ดวันในแพ็กฟรี; นานกว่านั้นในแพ็กเสียเงิน. URL ใช้ได้จนกว่าจะหมดอายุหรือจนกว่าคุณจะลบมันเองออกจาก dashboard — หมายความว่า bin เดียวจับ traffic ได้ข้ามหลายเซสชันทดสอบโดยไม่ต้องหมุนเปลี่ยน.
- webhook.site ตรวจสอบลายเซ็นของ UnifyPort อัตโนมัติได้ไหม?
- ไม่. webhook.site แสดงแค่ค่า header
X-Device-Signatureเท่านั้น — มันไม่ได้คำนวณ HMAC ใหม่. เพื่อพิสูจน์ว่าลายเซ็นตรงกัน ให้ copy timestamp และ raw body จาก bin ใส่ลงใน CyberChef recipe ของเราพร้อม signing secret ของคุณ; hex ที่ได้ควรเหมือนกับ header ทุกไบต์.
เชื่อมกับ UnifyPort
ลงทะเบียน URL ของ webhook.site ผ่าน POST /v1/webhook-endpoints — ตั้ง url เป็น bin ของคุณ และใช้ subscribed_events: ["*"] เพื่อรับทั้งหมด. ยังไม่ต้องส่ง signing_secret จนกว่าจะพร้อมตรวจสอบลายเซ็น; schema request เต็ม ๆ อยู่ในเอกสาร.