# Webhooks
Используйте Webhooks для получения событий задач и выставления счетов без опроса. Tripo отправляет полезные данные JSON на вашу конечную точку HTTPS при возникновении подписанных событий.
## Настройка
1. Откройте «Настройки», затем Webhooks.
2. Добавьте конечную точку HTTPS, например `https://api.yourapp.com/tripo-webhook`.
3. Выберите типы событий, которые вы хотите получать.
4. Сохраните конечную точку.
5. Скопируйте секрет подписи и надежно сохраните его. Оно отображается только один раз.
## Типы событий
| Событие | Описание |
| --- | --- |
| `task.completed` | Задача завершена успешно. |
| `task.failed` | Задача не выполнена или была отменена. |
| `balance.low` | Баланс счета упал ниже настроенного порога кредитного оповещения. |
## Заголовки запросов
| Заголовок | Описание |
| --- | --- |
| `Tripo-Webhook-Id` | Webhook конечная точка ID. |
| `Tripo-Webhook-Delivery` | Уникальная поставка ID. Используйте его для идемпотентности. |
| `Tripo-Webhook-Event` | Тип события, например `task.completed`. |
| `Tripo-Webhook-Signature` | Подпись HMAC-SHA256 поверх `{timestamp}.{raw_body}`. |
| `Content-Type` | Всегда `application/json`. |
## Проверка
1. Разберите `t` и `v1` из `Tripo-Webhook-Signature`.
2. Вычислите HMAC-SHA256 с секретом подписи над `t + "." + rawBody`.
3. Сравните вычисленный шестнадцатеричный дайджест с `v1`, используя сравнение с постоянным временем.
4. При необходимости отклоняйте временные метки старше пяти минут.
## Лучшие практики
- Быстро верните ответ `2xx`, а затем асинхронно обработайте тяжелую работу.
- Проверьте каждую полезную нагрузку перед изменением состояния приложения.
- Дедупликация событий с помощью `Tripo-Webhook-Delivery`.
- Используйте `balance.low`, чтобы предупредить пользователей до того, как создание задачи завершится сбоем из-за недостаточного количества кредитов.
Webhooks
Используйте Webhooks для получения событий задач и выставления счетов без опроса. Tripo отправляет полезные данные JSON на вашу конечную точку HTTPS при возникновении подписанных событий.
Настройка
- Откройте «Настройки», затем Webhooks.
- Добавьте конечную точку HTTPS, например
https://api.yourapp.com/tripo-webhook.
- Выберите типы событий, которые вы хотите получать.
- Сохраните конечную точку.
- Скопируйте секрет подписи и надежно сохраните его. Оно отображается только один раз.
Типы событий
| Событие |
Описание |
task.completed |
Задача завершена успешно. |
task.failed |
Задача не выполнена или была отменена. |
balance.low |
Баланс счета упал ниже настроенного порога кредитного оповещения. |
Заголовки запросов
| Заголовок |
Описание |
Tripo-Webhook-Id |
Webhook конечная точка ID. |
Tripo-Webhook-Delivery |
Уникальная поставка ID. Используйте его для идемпотентности. |
Tripo-Webhook-Event |
Тип события, например task.completed. |
Tripo-Webhook-Signature |
Подпись HMAC-SHA256 поверх {timestamp}.{raw_body}. |
Content-Type |
Всегда application/json. |
Проверка
- Разберите
t и v1 из Tripo-Webhook-Signature.
- Вычислите HMAC-SHA256 с секретом подписи над
t + "." + rawBody.
- Сравните вычисленный шестнадцатеричный дайджест с
v1, используя сравнение с постоянным временем.
- При необходимости отклоняйте временные метки старше пяти минут.
Лучшие практики
- Быстро верните ответ
2xx, а затем асинхронно обработайте тяжелую работу.
- Проверьте каждую полезную нагрузку перед изменением состояния приложения.
- Дедупликация событий с помощью
Tripo-Webhook-Delivery.
- Используйте
balance.low, чтобы предупредить пользователей до того, как создание задачи завершится сбоем из-за недостаточного количества кредитов.