API - EchoSMS+

Vue d'ensemble

L'API EchoSMS+ permet d'intégrer les fonctionnalités d'envoi SMS dans vos applications. Elle utilise Firebase Cloud Functions pour la gestion des requêtes.

Authentification

Toutes les requêtes API nécessitent une authentification Firebase. Les headers requis sont :

Authorization: Bearer 
Content-Type: application/json
                

Endpoints

1. Envoi de SMS

POST /api/v1/sms/send

Requête

{
    "recipients": ["+33612345678", "+33698765432"],
    "message": "Votre message ici",
    "campaignId": "campaign_123",
    "scheduledTime": "2025-07-16T14:30:00Z"
}
                    

Réponse

{
    "status": "success",
    "messageId": "sms_123",
    "recipientsCount": 2,
    "scheduledTime": "2025-07-16T14:30:00Z"
}
                    

2. Statistiques

GET /api/v1/sms/stats

Paramètres

?startDate=2025-07-01&endDate=2025-07-31
                    

Réponse

{
    "totalSent": 1250,
    "successRate": 98.5,
    "failureCount": 18,
    "averageDeliveryTime": "2.5s",
    "campaignStats": [
        {
            "campaignId": "campaign_123",
            "messagesSent": 500,
            "successRate": 99.2
        }
    ]
}
                    

3. Statut SMS

GET /api/v1/sms/status/{messageId}

Réponse

{
    "status": "delivered",
    "deliveryTime": "2025-07-16T14:30:02Z",
    "recipient": "+33612345678"
}
                    

Exemple d'intégration

JavaScript

// Initialisation Firebase
import { initializeApp } from 'firebase/app';
import { getAuth } from 'firebase/auth';

const app = initializeApp({
    apiKey: "YOUR_API_KEY",
    authDomain: "echosms.firebaseapp.com",
    projectId: "echosms"
});

const auth = getAuth(app);

// Fonction d'envoi SMS
async function sendSMS(recipients, message) {
    const token = await auth.currentUser.getIdToken();
    const response = await fetch('https://echosms.com/api/v1/sms/send', {
        method: 'POST',
        headers: {
            'Authorization': `Bearer ${token}`,
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            recipients,
            message,
            campaignId: 'campaign_' + Date.now()
        })
    });
    return response.json();
}
                

Limites et quotas