Guide de démarrage rapide
Mettez SocialHook en ligne en 5 minutes. Connectez votre premier compte de plateforme Meta et commencez à recevoir des webhooks avec quelques lignes de code.
Créez votre compte SocialHook
Inscrivez-vous sur socialhook.io — aucune carte de crédit requise
Après l'inscription, vous arriverez dans votre tableau de bord. De là, vous pouvez connecter vos comptes Meta, configurer votre URL webhook et voir les journaux de livraison. Votre compte inclut une clé secrète pour signer tous les payloads webhook.
Connectez un compte de plateforme Meta
OAuth dans Facebook, Instagram ou WhatsApp
Cliquez sur Connecter à côté de la plateforme que vous souhaitez utiliser. Vous serez redirigé vers le flux OAuth de Meta. SocialHook ne stocke jamais votre mot de passe Meta.
Configurez votre URL webhook
Collez votre point de terminaison et générez une clé secrète
Dans votre tableau de bord, allez dans Paramètres webhook et collez l'URL du point de terminaison POST de votre serveur. Générez une clé secrète — vous l'utiliserez pour vérifier les signatures des payloads.
Pour le développement local, utilisez ngrok pour exposer votre localhost :
npx ngrok http 3000
Configurez la vérification de signature
Vérifiez chaque payload avant de traiter
Chaque livraison inclut un en-tête X-SocialHook-Signature. Vérifiez-le avant de traiter tout payload :
const crypto = require('crypto')
function verifySignature(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex')
return signature === expected
}
app.post('/webhook', express.raw({ type: '*/*' }), (req, res) => {
const sig = req.headers['x-socialhook-signature']
if (!verifySignature(req.body, sig, process.env.SOCIALHOOK_SECRET)) {
return res.status(401).send('Unauthorized')
}
const payload = JSON.parse(req.body)
// ... handle payload
res.sendStatus(200)
})Gérez les événements entrants
Analysez et agissez sur les payloads webhook
Une fois vérifié, analysez le payload JSON et routez sur le champ event :
const { platform, event, message, from } = payload
switch (event) {
case 'message.received':
console.log(`[${platform}] Message from ${from}: ${message.body}`)
// Route to AI, CRM, n8n, etc.
await handleInboundMessage(payload)
break
case 'conversation.started':
// New conversation — create a CRM lead, send welcome message
await createLead({ platform, from, timestamp: payload.timestamp })
break
default:
console.log('Unhandled event:', event)
}
res.sendStatus(200) // Always respond 200Vous êtes en ligne 🎉
Envoyez un message de test à votre numéro WhatsApp connecté, votre page Facebook ou votre compte Instagram. Vous devriez voir une livraison apparaître dans vos journaux du tableau de bord SocialHook et un POST atteindre votre serveur en moins de 50ms.