← Tất cả công cụ
Ghi chú của chúng tôi

Debug webhook UnifyPort bằng webhook.site

Khi đang gắn một tích hợp UnifyPort mới, câu hỏi đầu tiên hiếm khi là "logic handler của tôi có đúng không?" — mà là "có gì đến chỗ tôi không?". webhook.site là cách nhanh nhất trả lời câu này.

Nó thực sự làm gì

webhook.site cấp ngay một URL HTTPS dùng một lần lúc bạn mở. Bất cứ request nào gửi tới URL đó — từ một dòng curl đến webhook production thật — đều hiện trên dashboard với headers, body thô, query string và thời gian đầy đủ. Không cần đăng ký, không cần cài. Gói miễn phí giữ URL một tuần, gói trả phí lâu hơn.

Khi nào dùng trong tích hợp UnifyPort

Thẳng thắn: bất cứ khi nào bạn nghi vấn đề có thể ở phía chúng tôi chứ không phải bạn. Cụ thể có ba thời điểm thường gặp:

  • 1. Kiểm tra kết nối lần đầu. Trước khi handler thật xong, trỏ webhook endpoint của thiết bị vào một URL webhook.site và bắn tin nhắn test. Sự kiện đến nơi nghĩa là kết nối, gắn account, và session provider — cả ba khâu — đều ổn.
  • 2. Đối chiếu sự kiện bị mất. Khi handler không thấy sự kiện đáng lẽ phải đến (ví dụ Telegram message.received), tạm thêm target thứ hai trỏ vào webhook.site. Nó đến đó nhưng không tới chỗ bạn — bug nằm trong code của bạn; cả hai không thấy — mở ticket kèm delivery id.
  • 3. Xem lại các field bạn đã quên. Dashboard hiển thị toàn bộ JSON đã được chuẩn hoá mà chúng tôi gửi — gồm data.attendees, data.conversation.title và các field tuỳ chọn khác không phải sự kiện nào cũng có. Nhanh hơn đọc lại tài liệu.

Tìm X-Device-Signature

Khi target có cấu hình signing secret, mỗi lần delivery sẽ kèm ba header tuỳ chỉnh:

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

Cả ba sẽ xuất hiện trong panel Headers của webhook.site. Để xác nhận chữ ký mà chưa cần viết code, copy timestamp và raw body rồi chạy qua hướng dẫn CyberChef của chúng tôi với secret của bạn — hex tạo ra phải khớp với header từng byte một.

Khi nào đừng dùng

Bất cứ thứ gì giống traffic production: tin nhắn khách hàng thật, signing secret bạn đang dùng, PII không nên nằm trên server người khác. URL webhook.site có thể đoán và công khai — coi như mọi thứ bạn đăng lên đó người khác đọc được. Khi cần debug dài hạn trên tài khoản thật, chuyển sang smee.io hoặc bin tự host.

Lựa chọn thay thế chúng tôi cũng thích

  • Pipedream RequestBin — hợp hơn khi cần xem dòng traffic dài hàng giờ.
  • smee.io — chuyển tiếp về localhost thay vì chỉ capture; phù hợp vòng lặp dev local.
  • ngrok — tunnel local đầy đủ kèm inspector tích hợp tại 127.0.0.1:4040. Cái chúng tôi mở nhiều nhất khi dev thật.

Câu hỏi thường gặp

webhook.site có an toàn cho webhook production không?
Không. URL webhook.site có thể đoán được và dashboard là công khai — bất kỳ ai biết URL đều đọc được mọi request đã bắt. Chỉ dùng nó để làm prototype với secret dùng một lần hoặc sự kiện test không chứa PII. Để debug dài hạn trên một tài khoản UnifyPort thật, chuyển sang smee.io hoặc bin tự host.
URL webhook.site tồn tại bao lâu?
Bảy ngày với gói miễn phí; lâu hơn với gói trả phí. URL vẫn còn hiệu lực đến khi hết hạn hoặc đến khi bạn tự xoá khỏi dashboard — nghĩa là một bin có thể bắt traffic qua nhiều phiên test mà không cần xoay vòng.
webhook.site có tự động xác minh chữ ký UnifyPort không?
Không. webhook.site chỉ hiển thị giá trị header X-Device-Signature — nó không tính lại HMAC. Để chứng minh chữ ký khớp, copy timestamp và raw body từ bin vào công thức CyberChef của chúng tôi cùng với signing secret của bạn; hex thu được phải giống header từng byte một.

Gắn vào UnifyPort

Đăng ký URL webhook.site qua POST /v1/webhook-endpoints — đặt url bằng bin của bạn và dùng subscribed_events: ["*"] để bắt tất cả. Bỏ trống signing_secret đến khi sẵn sàng xác minh chữ ký; schema request đầy đủ có trong tài liệu.