# AdvocateのWebhookサブスクリプションを作成・管理する

Webhook はイベントが発生したときに実行されるコードです。Advocate では、プログラム内でイベントが発生するたびに POST する URL を登録するために webhook を使用できます。例えば、新しい参加者に対してバニティクーポンコードが作成されたときにイベントオブジェクトが作成されます。Webhook を作成および管理する方法は 2 つあります： [Advocate API を介して](https://integrations.impact.com/impact-brand/docs/api-webhooks) または Advocate プラットフォーム内で。本記事では Advocate プラットフォームを通じて webhook を管理する方法を説明します。

#### Webhook サブスクリプションを作成する

1. 上部ナビゲーションバーから、 ![](https://1458456015-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-1183576591b45997efe4dc81a25024640591d02a%2F245137dc972a7a7f6165b59538fcdbac8fd5bd8fee4ba9f20c1a2982c5b58b57.svg?alt=media) **\[ユーザープロファイル] → 設定**.&#x20;
2. 下の左側の列で *Advocate 設定*、を選択します **Webhooks**.
3. で *Webhook サブスクリプション* ページで、次を選択します **サブスクリプションを作成**.
4. 下に *URL に POST*、特定のイベントに関するリアルタイム更新を送信するためにアプリケーションが使用する一意のアドレスを入力します。
5. 任意で、下の *Webhook 名*に、新しい webhook サブスクリプションの名前を入力します。
6. 選択します **保存**.

#### Webhook ログのトラブルシューティング

プログラム内でイベントが発生するたびに Advocate が POST する URL を登録した場合、ログを確認して失敗した webhook イベントをトラブルシューティングできます。

**Webhook ログにアクセスする**

1. 上部ナビゲーションバーから、 ![](https://1458456015-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-1183576591b45997efe4dc81a25024640591d02a%2F245137dc972a7a7f6165b59538fcdbac8fd5bd8fee4ba9f20c1a2982c5b58b57.svg?alt=media) **\[ユーザープロファイル] → 設定**.&#x20;
2. 下の左側の列で *Advocate 設定*、を選択します **Webhooks**.
3. で *Webhook サブスクリプション* ページで、次を選択します **ログを表示**.
4. 以下のフィルターを使用して *Webhooks イベントログ* で webhook をフィルタリングします。
   * を参照してください *フィルター参照* 詳細については。

<details>

<summary>フィルター参照</summary>

| フィルター | 説明                                                                                                                                             |
| ----- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| タイプ   | webhook をフィルタリングするには [イベントタイプ](https://integrations.impact.com/impact-brand/docs/api-webhooks#section-webhook-events)。このフィルターのデフォルトは *すべての種類*. |
| 期間    | webhook が最後に更新された期間でフィルタリングします。このフィルターのデフォルトは *全期間*.                                                                                           |

</details>

**Webhook の詳細を表示する**

1. 特定の webhook を選択して *Webhook の詳細* ビューを開きます。
2. このビューは webhook サブスクリプションのトラブルシューティングに使用できる情報を提供します。
   * を参照してください *イベント参照* 詳細については。

<details>

<summary>イベント参照</summary>

| フィルター        | 説明                                                                                                                                                         |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| タイプ          | Webhook [イベントタイプ](https://integrations.impact.com/impact-brand/docs/api-webhooks#section-webhook-events).                                                  |
| Webhook ID   | Webhook の一意の識別子。                                                                                                                                           |
| 作成日          | Webhook が作成された日付。                                                                                                                                          |
| イベントデータ      | Webhook [ペイロード](https://integrations.impact.com/impact-brand/docs/api-webhooks#section-payloads).                                                          |
| サブスクリプション    | Webhook が送信されたサブスクリプションとそれらのステータス。                                                                                                                         |
| サブスクリプションの詳細 | Webhook サブスクリプションのエンドポイントから受信したレスポンスに関する詳細。詳細には配信試行の情報が含まれることがあり、試行のタイムスタンプ、宛先から受信した HTTP ステータスコード、および宛先サーバーからの応答を受け取るのに時間がかかりすぎたために試行がタイムアウトしたかどうかが示されます。 |

</details>

**イベント配信失敗時の webhook 再試行システム**

* REST フックはイベントがトリガーされた直後に配信されます。エンドポイントが配信試行に正常に応答しない場合（つまり、200 以外のステータスコードで応答する場合）、配信は失敗とみなされます。
* 失敗した配信は、前回の失敗した試行から毎時間再試行され、成功配信が行われるか、または 72 回の試行が行われるまで（1 時間に 1 回の再試行の頻度で約 3 日）継続されます。
* 継続的にエラーを返す webhook エンドポイントは、以下のエラー回数に達すると自動的に無効化されます：

  | ステータスコード | 受信したエラー |
  | -------- | ------- |
  | 4xx エラー  | 1000    |
  | 5xx エラー  | 2000    |
  | 3xx エラー  | 2000    |
