n8n
À partir de Premium
Site de n8n
(site du fournisseur, s’ouvre dans une nouvelle fenêtre)
Dans n8n, le nœud « Webhook » reçoit les événements d’ici et le nœud « HTTP Request » appelle l’API. Cela fonctionne dans n8n Cloud et en auto-hébergé, tant que l’adresse du webhook est joignable depuis internet en HTTPS.
Recevoir des événements et vérifier la signature :
- Crée un workflow avec le nœud « Webhook », méthode POST, et copie la « Production URL ».
- Ajoute l’adresse sous Paramètres, Webhooks et note le secret, il n’est affiché qu’une seule fois.
- Dans le nœud webhook, active « Raw Body » sous « Options » et ajoute un nœud « Code » avec l’exemple ci-dessous. En auto-hébergé,
NODE_FUNCTION_ALLOW_BUILTIN=cryptodoit être défini.
const crypto = require('crypto');
const secret = 'whsec_YOUR_SECRET';
const header = $json.headers['x-horaka-signature'] ?? '';
const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')));
const body = Buffer.from($binary.data.data, 'base64').toString('utf8');
const expected = crypto
.createHmac('sha256', secret)
.update(`${parts.t}.${body}`)
.digest('hex');
if (expected !== parts.v1) {
throw new Error('Signature does not match');
}
return [{ json: JSON.parse(body) }];
Piloter le chronomètre depuis un workflow :
- Sous Paramètres, API et appareils, ajoute un appareil ou un jeton avec l’autorisation « Déclenchement ».
- Dans n8n, crée un identifiant de type « Header Auth » : nom
Authorization, valeurBeareret ton jeton. - Ajoute le nœud « HTTP Request » et saisis les valeurs ci-dessous.
Method: POST
URL: https://api.horaka.com/v1/track/toggle
Authentication: Generic Credential Type, Header Auth
Send Body: on, Body Content Type JSON
JSON: {"project": "PROJET"}