# Webhooks
Webhooks を使用して、ポーリングせずにタスクおよび請求イベントを受信します。 Tripo は、サブスクライブされたイベントが発生すると、JSON ペイロードを HTTPS エンドポイントに送信します。
## セットアップ
1. 「設定」を開き、「Webhooks」を開きます。
2. HTTPS エンドポイント (`https://api.yourapp.com/tripo-webhook` など) を追加します。
3. 受信したいイベントの種類を選択します。
4. エンドポイントを保存します。
5. 署名シークレットをコピーして安全に保管します。 1回のみ表示されます。
## イベントの種類
| イベント | 説明 |
| --- | --- |
| `task.completed` | タスクが正常に終了しました。 |
| `task.failed` | タスクが失敗したか、キャンセルされました。 |
| `balance.low` | アカウント残高が設定されたクレジット アラートしきい値を下回りました。 |
## リクエストヘッダー
| ヘッダー | 説明 |
| --- | --- |
| `Tripo-Webhook-Id` | Webhook エンドポイント ID。 |
| `Tripo-Webhook-Delivery` | ユニークな配信ID。冪等性のために使用します。 |
| `Tripo-Webhook-Event` | イベント タイプ (`task.completed` など)。 |
| `Tripo-Webhook-Signature` | `{timestamp}.{raw_body}` に対する HMAC-SHA256 署名。 |
| `Content-Type` | 常に `application/json`。 |
## 検証
1. `Tripo-Webhook-Signature` から `t` と `v1` を解析します。
2. `t + "." + rawBody` を介して署名シークレットを使用して HMAC-SHA256 を計算します。
3. 定数時間比較を使用して、計算された 16 進ダイジェストを `v1` と比較します。
4. 必要に応じて、約 5 分より古いタイムスタンプを拒否します。
## ベストプラクティス
- `2xx` 応答をすぐに返し、負荷の高い作業を非同期で処理します。
- アプリケーションの状態を変更する前に、すべてのペイロードを確認してください。
- `Tripo-Webhook-Delivery` を使用してイベントの重複を排除します。
- `balance.low` を使用して、クレジット不足のためにタスクの作成が失敗する前にユーザーに警告します。
Webhooks
Webhooks を使用して、ポーリングせずにタスクおよび請求イベントを受信します。 Tripo は、サブスクライブされたイベントが発生すると、JSON ペイロードを HTTPS エンドポイントに送信します。
セットアップ
- 「設定」を開き、「Webhooks」を開きます。
- HTTPS エンドポイント (
https://api.yourapp.com/tripo-webhook など) を追加します。
- 受信したいイベントの種類を選択します。
- エンドポイントを保存します。
- 署名シークレットをコピーして安全に保管します。 1回のみ表示されます。
イベントの種類
| イベント |
説明 |
task.completed |
タスクが正常に終了しました。 |
task.failed |
タスクが失敗したか、キャンセルされました。 |
balance.low |
アカウント残高が設定されたクレジット アラートしきい値を下回りました。 |
リクエストヘッダー
| ヘッダー |
説明 |
Tripo-Webhook-Id |
Webhook エンドポイント ID。 |
Tripo-Webhook-Delivery |
ユニークな配信ID。冪等性のために使用します。 |
Tripo-Webhook-Event |
イベント タイプ (task.completed など)。 |
Tripo-Webhook-Signature |
{timestamp}.{raw_body} に対する HMAC-SHA256 署名。 |
Content-Type |
常に application/json。 |
検証
Tripo-Webhook-Signature から t と v1 を解析します。
t + "." + rawBody を介して署名シークレットを使用して HMAC-SHA256 を計算します。
- 定数時間比較を使用して、計算された 16 進ダイジェストを
v1 と比較します。
- 必要に応じて、約 5 分より古いタイムスタンプを拒否します。
ベストプラクティス
2xx 応答をすぐに返し、負荷の高い作業を非同期で処理します。
- アプリケーションの状態を変更する前に、すべてのペイロードを確認してください。
Tripo-Webhook-Delivery を使用してイベントの重複を排除します。
balance.low を使用して、クレジット不足のためにタスクの作成が失敗する前にユーザーに警告します。