ดีบัก 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 จริง.
เชื่อมกับ UnifyPort
ลงทะเบียน URL ของ webhook.site ผ่าน POST /v1/webhook-endpoints — ตั้ง url เป็น bin ของคุณ และใช้ subscribed_events: ["*"] เพื่อรับทั้งหมด. ยังไม่ต้องส่ง signing_secret จนกว่าจะพร้อมตรวจสอบลายเซ็น; schema request เต็ม ๆ อยู่ในเอกสาร.