← เครื่องมือทั้งหมด
บันทึกของเรา

ดีบัก 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 ที่กำหนดเองสามตัว:

X-Device-Delivery-Id: d_01J2K…
X-Device-Timestamp: 1716800000
X-Device-Signature: 9f8c…

ทั้งสามจะอยู่ใน 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 เต็ม ๆ อยู่ในเอกสาร.