Expertise developer

Python SMS API Maroc : Guide Développeur avec Requests et Django/FastAPI

Tutoriel complet pour envoyer des SMS au Maroc en Python. Exemples avec Requests, intégration Django/FastAPI et écouteur de webhooks.

Python SMS API Maroc : Guide Développeur avec Requests et Django/FastAPI

1. Installation et Clé API EnvoiSMS

Commencez par installer requests via pip install requests. Récupérez votre token API sur EnvoiSMS.ma et placez-le dans vos variables d'environnement.

2. Envoi de SMS avec le Module Requests

Voici le script minimal en Python 3 :

python
import requests, os

url = 'https://api.envoisms.ma/v1/messages'
headers = {
    'Authorization': f'Bearer {os.environ.get("ENVOISMS_KEY")}',
    'Content-Type': 'application/json'
}
payload = {
    'recipient': '+212612345678',
    'message': 'Votre commande est expédiée.',
    'sender_id': 'MONENTREPRISE'
}
res = requests.post(url, json=payload, headers=headers)
print(res.json())

3. Intégration dans Django et FastAPI

Dans Django, créez un service dédié ou une tâche Celery pour exécuter les envois en tâche de fond. Dans FastAPI, utilisez BackgroundTasks pour ne jamais bloquer l'event loop asynchrone.

4. Vérification Cryptographique des Webhooks en Python

Implémentez un endpoint récepteur dans votre framework web. Validez la signature avec le module natif hmac et hashlib.sha256 pour contrer toute tentative d'injection de faux statuts.

5. Gestion des Retries et Alertes d'Échec

Prévoyez une politique de réessai exponentiel (exponential backoff) en cas d'indisponibilité réseau temporaire, tout en journalisant les identifiants de message.

💡 Pourquoi choisir EnvoiSMS pour votre entreprise ?

⚡

Délivrabilité Opérateurs

Routes locales vers IAM, Orange et Inwi, avec bascule automatique entre routes et statut de livraison transmis par webhook.

💰

Optimisation Budgétaire

WhatsApp Business API dès 0,65 MAD par message. Le meilleur retour sur investissement.

🛡️

Données Souveraines (CNDP)

Hébergement conforme aux réglementations de protection des données personnelles locales.

Q.FastAPI asynchrone est-il supporté ?
Oui, vous pouvez utiliser `httpx.AsyncClient` pour effectuer des requêtes non bloquantes vers l'API EnvoiSMS.
Q.Comment envoyer des caractères arabes en Python ?
Python 3 gère nativement l'encodage UTF-8. Passez simplement votre texte arabe dans le dictionnaire JSON.

Articles suggérés

Inbound Webhooks : Connecter TikTok & Meta Lead Ads directement à WhatsApp pour convertir vos prospects
developer

Inbound Webhooks : Connecter TikTok & Meta Lead Ads directement à WhatsApp pour convertir vos prospects

WhatsApp Flows : Créer des formulaires natifs dans le chat pour sécuriser le COD au Maroc
developer

WhatsApp Flows : Créer des formulaires natifs dans le chat pour sécuriser le COD au Maroc

Laravel SMS Maroc : Notification Channel et Tutoriel
developer

Laravel SMS Maroc : Notification Channel et Tutoriel