SteveSignalsDocs

Webhook

テストと管理

Webhook の行メニューのすべての操作、配信履歴シート、一時停止と再開、再配信、検証メッセージとサーバーメッセージ、ロール、公開 Webhook 管理 API を説明します。

すべての操作は開発者 → Webhookにあります。Webhook は 1 件につき 1 行で、ステータス、フィルター、最後に配信した時刻が表示されます。

開発者ページの API キーと Webhook
Webhook ごとに 1 行。ステータスのピル、フィルターのピル、最終配信が表示されます(画面は英語版)。

できることは、ロールによって異なります。

  • 組織の管理者とマネージャーは、追加、編集、一時停止、削除、再発行、再配信ができます。それ以外のメンバーには「Webhook を管理できるのは組織の管理者とマネージャーのみです。」と表示されます。
  • 1 組織につき Webhook は 5 件までです。上限に達すると、ページに「Webhook は 5 件まで登録できます。追加するには 1 件削除してください。」と表示されます。
  • 行には有効、一時停止中、無効のいずれかが表示されます。

行メニュー

行の Webhook の操作をクリックします。

Webhook の行メニュー
Webhook の操作: テスト、配信履歴、編集、再発行、一時停止または再開、削除。
操作内容
テストイベントを送信reviews.new が total: 1 のテスト用の実行 Webhook をキューに入れます。そのトークンはサンプルの G2 レビューを 1 件返します。Signals-Test: true が付き、署名付きで通常の経路を通るため、1 分以内に届きます。有効な Webhook のみ。同時に待機できるテストは 1 件です。
配信履歴を見る配信履歴シート(下記)を開きます。
編集URL とフィルターを変更します。署名シークレットは変わりません。
シークレットを再発行新しいシークレットを作成し、一度だけ表示します。古いシークレットは 24 時間署名を続けるため、リクエストには v1= の値が 2 つ入ります。署名を検証するをご覧ください。
一時停止送信を停止します。待機中の配信は待機したままです。すでに送信中のリクエストは完了します。
再開止まった位置から送信を再開します。一時停止中に終わった実行も、古い順に送られます。
削除Webhook とその配信履歴を完全に削除します。待機中の配信を含め、以降は何も送られません。ページのトークンも使えなくなります(404)。確認画面には「(URL)へのイベント送信を停止し、配信履歴も削除します。元に戻せません。」と表示されます。

無効の Webhook には、バナーに再度有効にするが表示されます。再開と同様に止まった位置から続け、さらに停止した配信をもう一度キューに入れます。再試行と失敗をご覧ください。

最終配信は自動では更新されません

最終配信の時刻は、ページを再読み込みすると更新されます。

フィルターを編集する

変更は、変更後に送られる実行に適用されます。送信済みの実行の POST の件数は変わりませんが、そのページには現在のフィルターが適用されます。編集後は、ページの total やイベントが POST の件数と異なることがあります。フィルターからプロジェクトを外すと、そのプロジェクトの実行は送られなくなります。フィルター内のプロジェクトが削除されている場合、行に削除されたプロジェクトのピルが表示され、そのエントリは何にも一致しません。

配信履歴シート

配信履歴を見るは、配信履歴を新しい順に一覧表示します。1 行が 1 回の POST、つまり 1 つの Webhook への 1 つの実行です。保持期間は 30 日間です。

配信履歴シート
配信履歴シート。実行ごとにステータス、件数、コード、所要時間が表示されます。

各行には次の内容が表示されます。

項目表示内容
ステータス待機中、送信中、配信済み、失敗、停止(再配信可能)、再配信済み。ステータスのラベルをご覧ください
実行実行 と短い実行 ID、イベント名ごとの件数。例:「3 件のイベント」。テスト配信にはテストタグとサンプルのレビューが表示されます。再配信済みの行には、代わりに送られた新しい配信の実行が表示されます。実行 Webhook より前の配信には、実行も件数も表示されません
試行N / 9 回目
所要時間直近の試行の時間、N ms
HTTP ステータスサーバーが返したステータスコード
エラー失敗したときの失敗のラベル

ボタン: 失敗した行の再送(同じ配信を同じ webhookId でもう一度送ります)、停止した行の再配信(新しい webhookId の新しい配信として送ります)、上部の停止した配信を再配信(停止した配信すべて。失敗した配信は対象外)、さらに読み込む。フッターには「M 件中 N 件を表示中」と表示されます。M は Webhook のすべての配信の数です。合計がわからないときは「N 件を表示中」と表示されます。履歴が空のときは「配信はまだありません。テストイベントを送信するとここに表示されます。」と表示されます。

再送と再配信には有効な Webhook が必要です。有効でない場合は「この Webhook は有効ではありません。先に再開してください。」と表示されます。再配信をご覧ください。

メッセージ

URL の検証

ダイアログは、入力中に URL をチェックします。

メッセージ原因
イベントの送信先 URL を入力してください。入力欄が空です。
URL が長すぎます。2048 文字を超えています。
https://your-app.com/signals-hook のような完全な URL を入力してください。有効な URL ではありません。
URL は https:// で始めてください。http:// やその他のスキームです。
https の標準ポート(443)を使用してください。カスタムポートです。
URL からユーザー名とパスワードを削除してください。URL に認証情報が含まれています。
IP アドレスではなくホスト名を使用してください。IPv4 または IPv6 のアドレスです。
公開ホスト名を使用してください。localhost や社内向けの名前では Webhook を受信できません。localhost、ドットを含まない名前、.local、.internal、.lan などです。
nip.io や sslip.io などのワイルドカード DNS サービスでは Webhook を受信できません。独自のホスト名を使用してください。nip.io、sslip.io、xip.io、localtest.me、lvh.me です。

サーバーメッセージ

メッセージ原因
この URL の Webhook はすでに登録されています。組織内の別の Webhook が同じ URL を使っています。
Webhook は 5 件まで登録できます。追加するには 1 件削除してください。上限に達しました。
この Webhook は有効ではありません。先に再開してください。一時停止中または無効の Webhook でテスト、再送、再配信をしました。
テストイベントを送信中です。完了してから次のテストを送信してください。テストがまだ待機中です。
選択したプロジェクトの一部が存在しません。プロジェクトのフィルターから外してください。フィルター内のプロジェクトが削除されました。
これ以上の配信を読み込めませんでした。履歴を開き直してください。さらに読み込むに失敗しました。

公開 Webhook 管理 API

アプリを使わずに Webhook を管理できます。認証には同じ API キーを使い、x-api-key ヘッダーで送ります。テストイベントを送信、シークレットを再発行、配信履歴はアプリ専用です。

メソッドとパス内容
GET /api/public/v1/webhooksWebhook を古い順に最大 5 件一覧表示します。シークレットは返されません。レスポンスは { "items": [...] }。
POST /api/public/v1/webhooks作成します。ボディは { "url": "...", "filters": {...} }。Webhook と secret を付けて 201 を返します。シークレットは一度だけです。
PATCH /api/public/v1/webhooks/{id}url、filters、status(active または paused)を変更します。少なくとも 1 つのフィールドが必要です。status: "active" のとき、resume で送信を再開する位置を選べます(下記)。
POST /api/public/v1/webhooks/{id}/replay配信をもう一度キューに入れます。ボディは下記。
DELETE /api/public/v1/webhooks/{id}Webhook とその配信履歴を削除します。{ "deleted": true } を返します。

filters には 5 つのリストがあります。eventTypes、subEventTypes、actions(new、updated、removed)、domains(小文字の競合ドメイン)、projectIds です。空のリスト、またはリストがない場合は、すべてに一致します。

PATCH の resume は、次の 2 つの値のどちらかです。

値送られるもの
where_it_stopped(デフォルト)最後に送った実行の後に終わったすべての実行を、古い順に送ります。停止した配信もキューに戻します。
nowこれから終わる実行だけを送ります。一時停止中や無効だった間に終わった実行はスキップします。

再配信のボディで、もう一度キューに入れる配信を選びます。キーはすべて省略可能で、送ったキーは AND で組み合わされます。

キー絞り込む内容
statusdead(デフォルト)または failed。このステータスの配信だけを再配信します。
deliveryIds指定した配信(string[]、最大 100 件)。上の status にも一致する必要があるため、失敗した配信を再配信するには "status": "failed" も送ってください。
runId1 つの実行の配信。
sinceこの ISO 8601 時刻以降に作られた配信。

空のボディ {} は、停止したすべての配信を再配信します。テスト配信は再配信されません。1 回の呼び出しで再配信するのは古い順に最大 500 件です。replayed が 0 になるまで呼び出してください。レスポンスは { "replayed": n } です。

再配信は、新しい webhookId と新しいページトークンを持つ新しい配信です。元の行は再配信済みになります。

SIGNALS_HOST には、サインインするアプリのアドレスを設定します。開発者ページの試してみるのコマンドに表示されます。

bash
1curl -X POST $SIGNALS_HOST/api/public/v1/webhooks \
2 -H "x-api-key: $SIGNALS_API_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "url": "https://your-app.com/signals-hook",
6 "filters": { "eventTypes": ["jobs"], "subEventTypes": [], "actions": ["removed"], "domains": ["hubspot.com"] }
7 }'
bash
1curl -X POST $SIGNALS_HOST/api/public/v1/webhooks/$WEBHOOK_ID/replay \
2 -H "x-api-key: $SIGNALS_API_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{ "status": "dead" }'
ステータス意味
201 / 200作成済み / OK。
400ボディが無効です。URL のルール、フィルター、存在しない projectIds の指定、または不明なキーや不正な値を含む再配信のボディです。
401API キーがない、または無効です。
403キーが Signals の組織に属していません。
404組織内にその Webhook がない(PATCH、DELETE、再配信)、または Signals がオフになっています。
409別の Webhook がすでにこの URL を使っている、または有効でない Webhook で再配信をしました。
422すでに Webhook が 5 件あります(POST)。
429同じ IP から 1 分間に 30 件を超えるリクエストがありました。60 秒後に再試行してください。

API のエラーは { "error": "..." } の形式です。機械可読な完全な仕様は /api/public/docsにあります。