📱 WhatsApp Cloud API
WhatsApp est connecté via l'API Cloud de Meta — l'API officielle, disponible en niveau gratuit, qui vous permet d'envoyer et recevoir des messages WhatsApp depuis votre propre serveur. Aucun BSP (Business Solution Provider) tiers n'est requis.
Prérequis
- Un compte développeur Meta sur developers.facebook.com
- Un compte Meta Business (alias Business Manager)
- Un numéro de téléphone pour WhatsApp qui n'est pas déjà enregistré sur WhatsApp personnel (vous pouvez utiliser une SIM, un numéro virtuel ou un fixe)
Étapes de Configuration
1. Créer une App Meta
- Allez sur developers.facebook.com/apps
- Cliquez sur Create App
- Choisissez le type Business
- Remplissez un nom et connectez votre compte Business
2. Ajouter le Produit WhatsApp
- Dans le tableau de bord de votre app, faites défiler jusqu'à Add Products to Your App
- Cliquez sur Set Up sur WhatsApp
- Sélectionnez votre compte Business
3. Obtenir Vos Identifiants
Naviguez vers WhatsApp → API Setup dans le tableau de bord de votre app :
| Identifiant | Où le Trouver |
|---|---|
| Phone Number ID | Listé dans la section « From » — un ID numérique comme 123456789012345 |
| Access Token | Le token temporaire affiché sur cette page. Pour la production, générez un token permanent via System Users. |
| App Secret | Tableau de bord de l'App → Settings → Basic → App Secret |
| Verify Token | Une chaîne que vous inventez — n'importe quelle chaîne aléatoire, ex. my_secret_verify_token_2024 |
4. Ajouter le Canal dans PulseHub
- Allez dans Canaux → Ajouter un Canal
- Sélectionnez WhatsApp
- Remplissez les quatre champs
- Cliquez sur Enregistrer le Canal
- Copiez l'URL Webhook affichée sur la carte du canal
5. Configurer le Webhook dans Meta
- Dans votre app Meta, allez dans WhatsApp → Configuration
- Cliquez sur Edit à côté de la section Webhook
- Callback URL : collez votre URL webhook PulseHub
- Verify Token : entrez la même chaîne que dans PulseHub
- Cliquez sur Verify and Save
Meta fera une requête GET vers votre URL webhook avec ?hub.mode=subscribe&hub.verify_token=...&hub.challenge=.... PulseHub vérifie le token et renvoie le challenge.
- Sous Webhook Fields, abonnez-vous à : messages
6. Tester
Envoyez un message WhatsApp à votre numéro professionnel. Il devrait apparaître comme nouvelle conversation dans la boîte PulseHub en quelques secondes.
Vérification de Signature
Meta inclut un en-tête X-Hub-Signature-256 sur chaque webhook :
X-Hub-Signature-256: sha256=abc123...
PulseHub le vérifie en utilisant HMAC-SHA256 avec votre App Secret. Si la vérification échoue, le webhook retourne 401 Signature mismatch.
Envoi de Messages
Quand un agent envoie une réponse depuis la boîte de réception, PulseHub appelle l'API WhatsApp Cloud :
POST https://graph.facebook.com/v18.0/{phone_number_id}/messages
Authorization: Bearer {access_token}
{
"messaging_product": "whatsapp",
"to": "{recipient_phone}",
"type": "text",
"text": {"body": "Votre réponse ici"}
}
Accès Production
L'app Meta par défaut est en mode Development — elle ne peut envoyer des messages qu'aux numéros ajoutés comme numéros de test. Pour passer en production :
- Complétez la Vérification Business dans Meta Business Manager
- Soumettez votre cas d'utilisation WhatsApp pour la revue de Meta
- Une fois approuvé, votre app obtient l'accès pour envoyer des messages à tous les utilisateurs WhatsApp
Problèmes Courants
| Symptôme | Cause Probable |
|---|---|
| La vérification échoue lors de la configuration du webhook | Le verify_token dans PulseHub ne correspond pas à ce que vous avez entré dans Meta |
| Erreur de signature non correspondante dans les logs | app_secret incorrect — copiez-le depuis App Settings → Basic, pas depuis API Setup |
| Les messages n'arrivent pas | Le champ webhook messages n'est pas abonné dans le tableau de bord Meta |
Invalid phone number lors de l'envoi | Le format du numéro doit être E.164 sans + (ex. 15551234567) |
| Erreur d'app en mode Development | Seuls les numéros de test vérifiés peuvent recevoir des messages en mode dev |