웹훅
API를 폴링하는 대신 자체 URL에서 HTTP 이벤트를 수신합니다.
웹훅 생성
http
POST /v1/webhooksjson
{
"url": "https://votre-app.exemple.com/webhooks/emini",
"events": ["job.completed", "job.failed"]
}json
{
"webhook": { "id": "...", "url": "https://votre-app.exemple.com/webhooks/emini", "events": ["job.completed", "job.failed"], "status": "active" },
"secret": "whsec_..."
}secret은 생성 시 단 한 번만 반환됩니다. 전달 내용의 서명을 검증하기 위해 보관해 두세요.이용 가능한 이벤트
job.completed— 비동기 작업(비디오)이 성공적으로 완료됨job.failed— 비동기 작업이 실패함budget.alert— 프로젝트 예산 경고 임계값을 초과함
서명 검증
각 전달에는 X-Emini-Signature 헤더가 포함됩니다: 사용자의 secret으로 계산된 원본 요청 본문의 HMAC-SHA256 값입니다.
Node.jstypescript
import crypto from "node:crypto";
function isValid(rawBody: string, signature: string, secret: string): boolean {
const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}웹훅 관리
bash
GET /v1/webhooks # lister
DELETE /v1/webhooks/{webhook_id} # desactiver
GET /v1/webhooks/{webhook_id}/deliveries # historique des livraisons대안: 폴링
웹훅은 선택 사항입니다 — 작업 상태를 능동적으로 폴링하려면 언제든지 GET /v1/jobs/{job_id}를 사용할 수 있습니다(비디오 가이드 참고).