문서 / 웹훅
웹훅
설정 → 웹훅에서 엔드포인트를 구성하면, 구독한 각 이벤트에 대해 Meshwire가 서명된 JSON 페이로드를 POST로 전송합니다.
이벤트 카탈로그
| 이벤트 | 설명 |
|---|---|
| bot.published | 새 흐름 버전이 게시되었습니다 |
| subscriber.created | 새 구독자가 봇에 가입했습니다 |
| subscriber.blocked | 구독자가 봇을 차단했습니다 |
| broadcast.completed | 브로드캐스트 전송이 완료되었습니다 |
| broadcast.failed | 브로드캐스트 전송에 실패했습니다 |
| message.inbound | 수신 메시지를 받았습니다 |
서명 검증하기
모든 요청에는 X-Meshwire-Signature 헤더가 포함됩니다. 이는 원본 요청 본문에 대해 엔드포인트 시크릿으로 서명한 HMAC-SHA256 16진수 다이제스트입니다.
const expected = crypto
.createHmac("sha256", endpointSecret)
.update(rawBody)
.digest("hex");
if (expected !== req.headers["x-botforge-signature"]) {
return res.status(401).end();
}재시도 및 백오프
5초 이내에 2xx 응답을 받지 못한 전송은 지수 백오프로 재시도됩니다: 1분, 5분, 30분, 2시간, 이후 12시간 간격으로 최대 24시간까지. 마지막 시도까지 실패하면 해당 엔드포인트에 플래그가 지정되고 이메일로 알림을 받게 됩니다. 1시간 동안 실패율이 50%를 초과하는 엔드포인트는 일시적으로 비활성화됩니다.
페이로드 예시
{
"id": "evt_3n7f",
"type": "broadcast.completed",
"createdAt": "2024-05-02T14:03:11Z",
"data": {
"broadcastId": "bcast_7f1",
"botId": "bot_9k2",
"stats": { "total": 4210, "delivered": 4180, "blocked": 19, "failed": 11 }
}
}