Webhook
何かが起こったときにリアルタイムで通知を受け取ります。 Webhook は、注文が行われるとき、出席者がチェックインするとき、ブースの見込み客が獲得されるときなどに、HTTP POST リクエストをサーバーに送信します。
Webhook とは
Webhook は、指定した URL に送信される自動化された HTTP POST リクエストです。 API に変更をポーリングする代わりに、サーバーはイベントが発生した瞬間に通知を受け取ります。各 Webhook ペイロードには、イベント タイプ、タイムスタンプ、および関連データが含まれます。
エンドポイントの作成
管理、成長、Webhook の順に移動します。 「エンドポイントの作成」をクリックします。エンドポイントの名前 (参照用)、ペイロードの送信先となる宛先 URL を入力し、必要に応じて受信するイベント タイプをフィルターします。署名シークレットは自動的に生成されます。受信ペイロードを検証するためにこれが必要になります。
イベント タイプ
次のイベント タイプが使用可能です。各タイプは、プラットフォーム内の特定のアクションに対応します。
| イベント タイプ | 説明 |
|---|---|
| tracking.attributed_order | 追跡された訪問者が注文を完了しました(属性データを含む) |
| order.paid | 注文は正常に支払われました |
| attendee.checked_in | 出席者がイベントにチェックインしました |
| attendee.connection_made | イベントで 2 人の参加者がつながりました |
| booth.lead_captured | ブース出展者が新しいリードを獲得しました |
| booth.scan | ブースでバッジがスキャンされました |
| booth.connection_created | 出席者と出展者の間につながりができました |
| booth.order_paid | ブース パッケージが購入されました |
イベントfiltering
デフォルトでは、新しいエンドポイントはすべてのイベント タイプを受信します。イベント フィルターを使用して、関心のあるタイプのみを選択します。これにより、サーバー上のノイズと処理が軽減されます。エンドポイントを再作成しなくても、いつでもフィルタを更新できます。
署名の検証
すべての Webhook リクエストには、セキュリティのための署名ヘッダーが含まれています。エンドポイントの署名シークレットを使用して、ペイロードが Kagibagによって送信され、改ざんされていないことを確認します。
// 署名はリクエスト ヘッダーに含まれます。
// エンドポイント シークレットで HMAC-SHA256 を使用することを確認します
const 署名 = request.headers['x-webhook-signature'];
const Expected = hmac('sha256', endpointSecret, request.body);
const isValid =timingSafeEqual(signature, Expected);配信と再試行
配信が失敗すると (サーバーが 2xx 以外のステータス コードを返すかタイムアウトになると)、Kagibag は自動的に再試行します。再試行では指数バックオフが使用されます。各試行は前回よりも長く待機します。システムはデフォルトで最大 6 回の試行を行います。すべての試行が完了すると、配信は失敗としてマークされます。
配信のモニタリング
Webhook セクションで各エンドポイントの配信履歴を表示します。各配信には、イベント タイプ、HTTP ステータス コード、試行回数、タイムスタンプ、およびエラー メッセージが表示されます。配信をクリックして完全なリクエスト ペイロードを検査します。統合の問題のデバッグに役立ちます。
テスト
任意のエンドポイントで [テストの送信] ボタンを使用して、テスト ペイロードを起動します。テストでは、データ内の order.paid イベント タイプを使用します。これにより、エンドポイントが到達可能であり、ペイロードが正しく処理されていることを、公開前に確認できます。test: true フラグを持つ
トラブルシューティング
一般的な問題とその解決方法。
| 問題 | 解決策 |
|---|---|
| エンドポイントが 4xx を返すエラー | URL が正しいこと、およびサーバーがそのパスでの POST リクエストを予期していることを確認してください。サーバーが JSON コンテンツ タイプを受け入れることを確認してください。 |
| 配信が枯渇しました | 再試行はすべて失敗しました。サーバーのログでエラーを確認してください。問題を修正し、エンドポイントを再度有効にします。新しいイベントが新たに開始されます。 |
| 署名の不一致 | 正しいエンドポイント シークレットを使用し、生のリクエスト本文 (解析されたバージョンではない) を確認してください。 HMAC 実装で SHA-256 が使用されていることを確認してください。 |
| エンドポイントが無効になります | エンドポイントは、失敗が繰り返されると自動的に無効になります。根本的な問題を修正した後、Webhook 設定で再度有効にします。 |