Webhooks
Un site web peut avoir jusqu'Ă cinq webhooks. Une fois configurĂ©, Hyvor Talk enverra une requĂȘte HTTP POST Ă cette URL lors de certains Ă©vĂ©nements (ex. : lorsqu'un nouveau commentaire est créé). Vous pouvez agir sur ces Ă©vĂ©nements (ex. : envoyer un e-mail Ă l'auteur du commentaire). Veillez Ă valider les requĂȘtes de webhook pour vous assurer qu'elles proviennent bien de Hyvor Talk.
Configurer les webhooks
Vous pouvez configurer les webhooks dans Console â ParamĂštres â Webhooks â Ajouter un webhook. Vous pouvez sĂ©lectionner n'importe quel Ă©vĂ©nement, et chaque webhook peut s'abonner Ă un nombre quelconque d'Ă©vĂ©nements.
- L'URL doit ĂȘtre accessible publiquement
- Utilisez https (fortement recommandé)

Réponse
Pour chaque requĂȘte de webhook, nous attendons de votre serveur un code de rĂ©ponse 200 OK. Si la requĂȘte Ă©choue (nous recevons un autre code de rĂ©ponse), nous rĂ©essaierons deux fois de plus. Ensuite, nous marquerons la requĂȘte de webhook comme Ă©chouĂ©e et cesserons d'envoyer d'autres requĂȘtes pour cet Ă©vĂ©nement.
RequĂȘte HTTP POST
Le corps de la requĂȘte est une chaĂźne encodĂ©e en JSON avec la structure de donnĂ©es suivante.
{
"event": "comment.create",
"data": {} // un objet
}ĂvĂ©nements et donnĂ©es
Le champ event et le champ data diffÚrent selon le type d'événement. Voici
la liste de tous les types d'événements et de leurs données.
memberships.subscription.created{ subscription: MembershipSubscription }memberships.subscription.updated{ subscription: MembershipSubscription }memberships.subscription.deleted{ subscription: MembershipSubscription }Valider les webhooks
Dans les paramĂštres des webhooks, veillez Ă gĂ©nĂ©rer une clĂ© secrĂšte. Elle sera utilisĂ©e pour signer les requĂȘtes
de webhook. Vous pourrez ensuite vĂ©rifier la signature de la requĂȘte pour vous assurer qu'elle provient bien de Hyvor
Talk. La signature est un hash HMAC-SHA256 du corps JSON de la requĂȘte. La clĂ© secrĂšte est utilisĂ©e comme
clĂ©. Pour valider, vous devez gĂ©nĂ©rer une signature avec le mĂȘme algorithme, le corps de requĂȘte fourni
et la clĂ© secrĂšte. Ensuite, comparez la signature gĂ©nĂ©rĂ©e avec la signature de l'en-tĂȘte X-Signature. Si elles correspondent, la requĂȘte est valide.

Voici un exemple en PHP de validation de la signature.
// rĂ©cupĂ©rer le corps complet de la requĂȘte sous forme de chaĂźne
$requestBody = file_get_contents('php://input');
// générer la signature à comparer
$signature = hash_hmac('sha256', $requestBody, $secretKey);
// signature fournie dans l'en-tĂȘte X-Signature
$givenSignature = $_SERVER['HTTP_X_SIGNATURE'];
if (hash_equals($signature, $givenSignature)) {
// valide
} else {
// invalide
}IP de confiance (liste blanche d'IP)
Les requĂȘtes de webhook transitent par deux adresses IP :
78.47.223.802a01:4f8:1c17:b1d7::
Pour plus de sécurité, vous pouvez mettre ces adresses sur liste blanche pour le trafic HTTPS entrant (port 443) vers votre point de terminaison de webhook. Cependant, la liste blanche d'IP est facultative et ne doit pas remplacer la vérification de la signature.