Utiliser l'API SMS de Free Mobile

Le par Anthony Domps.
Dernière modification le

Free Mobile propose une API SMS permettant d’envoyer des messages directement vers votre propre numéro. Cette fonctionnalité est particulièrement utile pour automatiser des alertes, tester des notifications ou intégrer des notifications SMS dans vos scripts et applications.

Activation du service

Une fois l'option activée dans l'interface de gestion de Free mobile, il suffit d'appeler une URL avec les paramètres nécessaires (user, pass et msg) :

https://smsapi.free-mobile.fr/sendmsg?user=123456789&pass=XXXXXXXX&msg=hello

Avec cette méthode, le contenu du message doit être correctement encodé pour l’inclure dans l’URL :

$msg  = 'Bonjour, ça va ?';

// Encodage du message pour l'URL
$msg_encoded = urlencode($msg);

// Contenu de la variable $msg_encoded = Bonjour%2C+%C3%A7a+va+%3F

Pourquoi utiliser la méthode POST ?

L'inclusion d'informations sensibles dans l'URL est une mauvaise pratique car cela expose vos données même en utilisant le protocole HTTPS.

Afin de passer les paramètres dans une requête POST à l'API SMS, il est nécessaire de les convertir en JSON :

$url = 'https://smsapi.free-mobile.fr/sendmsg';

$data = [
    'user' => '123456789',
    'pass' => 'XXXXXXXXXX',
    'msg' => 'Hello World !'
];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

curl_exec($ch);

// Récupération du code HTTP
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

Attention : avec la méthode POST en JSON, les caractères accentués ou spéciaux peuvent parfois être ignorés ou mal interprétés par l'API. Pour garantir que vos messages s'affichent correctement, vous pouvez utiliser des caractères ASCII simples.

Codes HTTP de réponse de l'API SMS Free

Lors de l'envoi d'un SMS via l'API, il est important de vérifier le code HTTP retourné pour s'assurer que la requête a été correctement traitée. Voici les principaux codes de réponse :

  • 200 OK – Le message a été envoyé avec succès.
  • 400 Bad Request – Paramètres manquants ou mal formés dans la requête.
  • 401 Unauthorized – Identifiants (user/pass) incorrects.
  • 403 Forbidden – Le service SMS n'est pas activé pour ce compte.
  • 404 Not Found – URL de l'API incorrecte.
  • 500 Internal Server Error – Problème côté serveur Free.