Documentation / Webhooks

Webhooks

Configurez un endpoint dans Paramètres → Webhooks et Meshwire enverra par POST une charge JSON signée pour chaque événement souscrit.

Catalogue des événements

ÉvénementDescription
bot.publishedUne nouvelle version de flux a été publiée
subscriber.createdUn nouvel abonné a rejoint un bot
subscriber.blockedUn abonné a bloqué le bot
broadcast.completedUne diffusion a terminé son envoi
broadcast.failedL'envoi d'une diffusion a échoué
message.inboundUn message entrant a été reçu

Vérification des signatures

Chaque requête inclut un en-tête X-Meshwire-Signature : une empreinte hexadécimale HMAC-SHA256 du corps brut de la requête, signée avec le secret de votre endpoint.

const expected = crypto
  .createHmac("sha256", endpointSecret)
  .update(rawBody)
  .digest("hex");

if (expected !== req.headers["x-botforge-signature"]) {
  return res.status(401).end();
}

Nouvelles tentatives et recul

Les livraisons qui ne reçoivent pas de 2xx dans les 5 secondes sont retentées avec un recul exponentiel : 1 min, 5 min, 30 min, 2 h, puis 12 h, pendant jusqu'à 24 heures. Après l'échec de la dernière tentative, l'endpoint est signalé et vous serez notifié par e-mail. Les endpoints dont le taux d'échec dépasse 50 % sur 1 heure sont temporairement désactivés.

Exemple de charge utile

{
  "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 }
  }
}

Aller plus loin

Livraison, retries et diagnostic en lecture seule

Les webhooks sortants POSTent une charge JSON signée vers le point de terminaison configuré ; les webhooks entrants déclenchent des flux sur événements externes, chaque trigger écoutant son propre nom d'événement — un seul endpoint peut donc piloter plusieurs flux.\nLe diagnostic qui touche Telegram lui-même — les scripts smoke et diagnose livrés — est strictement en lecture seule : ils n'enregistrent jamais de webhook ni n'envoient de commandes, parce qu'un outil de diagnostic capable de muter l'état de production est un incident en sursis. L'enregistrement n'a lieu que dans les flux gardés de l'application.\nSi votre installation est derrière un proxy ou un WAF, une page de défi peut intercepter l'appel de webhook ; le système détecte cette forme et vous dit de recharger en dur au lieu de réessayer en silence contre le même mur.