Instagram DM API : tutoriel d'intégration développeur
Tutoriel développeur pour intégrer l'Instagram DM API : prérequis Meta, webhooks, envoi de messages, cas d'usage e-commerce au Maroc.

Instagram est au Maroc l'un des principaux canaux de découverte produit, en particulier pour la mode, la beauté, le food et le lifestyle. Beaucoup de marques traitent encore leurs DM (messages privés) manuellement, au risque de perdre des ventes faute de réactivité. L'Instagram Messaging API permet d'automatiser une partie du traitement, d'intégrer les conversations à un CRM et d'offrir une expérience professionnelle. Tutoriel technique pour développeurs.
Prérequis
Avant de commencer :
- Un compte Instagram professionnel lié à une page Facebook.
- Un Meta Business Manager avec entreprise vérifiée.
- Une application Meta Developers avec le produit Messenger activé.
- Un serveur exposé en HTTPS pour recevoir les webhooks.
- Des tokens d'accès avec les bonnes permissions (instagram_manage_messages, pages_manage_metadata).
Étape 1 : configurer l'application Meta
Dans le tableau de bord développeur :
- Créer une application de type Business.
- Ajouter le produit Messenger.
- Dans la section Instagram, lier la page Facebook associée au compte Instagram pro.
- Générer un token d'accès de page (long-lived).
- Configurer l'URL de webhook et le verify token.
Étape 2 : recevoir les webhooks
Meta envoie une requête GET de vérification lors de la configuration du webhook. Votre serveur doit répondre en renvoyant le paramètre hub.challenge si le hub.verify_token correspond à celui configuré.
Structure d'un webhook message
Une fois validé, Meta pousse en POST les événements. La charge JSON contient notamment :
- object : "instagram".
- entry : tableau d'événements, chacun avec un identifiant de compte, un timestamp et un tableau messaging.
- Dans messaging : l'expéditeur, le destinataire, le contenu du message (texte, média, réaction).
Il faut vérifier la signature X-Hub-Signature-256 avant de traiter le payload, sinon vous prenez un risque d'injection.
Étape 3 : envoyer un message
Pour répondre, appeler l'endpoint Graph API :
- POST vers https://graph.facebook.com/v18.0/me/messages.
- Header : Authorization: Bearer <PAGE_ACCESS_TOKEN>.
- Corps JSON : { "recipient": { "id": "<IGSID>" }, "message": { "text": "Bonjour !" } }.
L'IGSID est l'identifiant Instagram de l'utilisateur, obtenu depuis le webhook entrant.
Envoyer un média
On peut envoyer image, vidéo, audio en fournissant une URL publique et un type d'attachement. Attention aux formats supportés et à la taille maximale.
Envoyer un message avec bouton
Des quick replies permettent d'afficher jusqu'à 13 options de réponse rapide sous le message. Idéal pour guider le client dans un parcours structuré (choix de produit, prise de rendez-vous).
Étape 4 : gérer la fenêtre de messagerie
Comme WhatsApp, Instagram impose une fenêtre de 24 heures pendant laquelle vous pouvez répondre librement après un message entrant. Au-delà, seules certaines catégories de messages (par exemple human agent, message tag) sont autorisées. Un développeur sérieux code cette contrainte dès le début pour éviter les erreurs API en production.
Étape 5 : intégrer à un CRM
Pour capitaliser sur les conversations, on stocke :
- Le contact (IGSID, username Instagram, éventuellement téléphone ou email si le client les fournit).
- L'historique complet des échanges.
- Les métadonnées (source de contact, statut, agent en charge).
Un modèle simple relie chaque conversation à un compte CRM, avec unification si le même contact interagit aussi via WhatsApp, email ou téléphone.
Cas d'usage e-commerce Maroc
Réponse automatique aux questions récurrentes
"C'est combien ?", "Vous livrez à Fès ?", "Dispo en L ?" : un bot bien conçu répond en quelques secondes, jour et nuit, et laisse à l'humain les demandes plus complexes.
Qualification et prise de commande
Le bot guide le client à travers un mini-tunnel : produit, taille, adresse, mode de paiement. Un handoff vers un agent humain finalise la commande si nécessaire.
Suivi post-vente
Confirmation, statut de livraison, demande d'avis. La conversation dans le même thread renforce le lien avec la marque.
Bonnes pratiques développeur
- Traitement asynchrone : accepter le webhook immédiatement (réponse 200) et traiter le message en tâche de fond via une file.
- Idempotence : Meta peut renvoyer un webhook, se protéger contre les doubles traitements.
- Retries maîtrisés : en cas d'échec d'envoi, prévoir un backoff exponentiel plutôt qu'une boucle serrée.
- Journalisation : chaque appel API doit laisser une trace utilisable en cas d'incident.
- Sécurité des tokens : jamais dans le code source ni dans les logs, stockés en secret manager.
Limitations à connaître
- Les DM Instagram ne remplacent pas WhatsApp : ils dépendent d'une connexion à l'app Instagram côté client.
- La qualité du compte peut être impactée par un usage abusif (spam, refus utilisateur).
- Les catégories de messages hors fenêtre 24h sont restreintes et évoluent au gré des politiques Meta.
Conclusion
Intégrer l'Instagram DM API est un chantier accessible pour tout développeur familier des APIs REST et des webhooks. Bien conduite, cette intégration transforme un canal souvent négligé en véritable levier de conversion pour les marques marocaines actives sur Instagram — à condition de respecter les règles Meta, de sécuriser les données et d'offrir une vraie qualité conversationnelle plutôt qu'une automatisation grossière.

