Envoi de SMS en PHP : Aperçu des bibliothèques API pour l'intégration

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Envoi de SMS en PHP : Aperçu des bibliothèques API et exemples d'intégration

L'envoi de messages SMS reste une fonctionnalité demandée pour les applications web : authentification à deux facteurs, notifications de commandes, campagnes marketing. En PHP, cette tâche est réalisée via l'API de services tiers. Dans cet article, nous examinerons les bibliothèques populaires, les méthodes pour les connecter et fournirons des exemples de code fonctionnels.



1. Services populaires et leurs bibliothèques PHP

Le choix du fournisseur dépend de la région, du prix et des exigences de livraison. Examinons trois options :

  • Twilio — leader international, fournit un SDK pour PHP (twilio/sdk). Convient aux projets mondiaux.
  • SMS Aero — service russe avec une API REST simple et une bibliothèque PHP officielle.
  • smsc.ru — un autre service national populaire avec des tarifs bas et des scripts prêts à l'emploi.


2. Installation via Composer

La plupart des bibliothèques modernes s'installent via Composer. Exemple pour Twilio :

composer require twilio/sdk

Pour SMS Aero, utilisez :

composer require smsaero/smsaero-php

Si vous utilisez smsc.ru, vous pouvez vous passer de Composer — copiez simplement leur classe PHP depuis GitHub.



3. Exemple d'envoi de SMS via Twilio

La bibliothèque Twilio nécessite un Account SID et un Auth Token, que vous obtenez dans votre tableau de bord.

<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

// Vos données$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";$token = "your_auth_token";$twilio = new Client($sid, $token);

// Envoi de SMS$message = $twilio->messages ->create( "+71234567890", // numéro du destinataire [ "from" => "+15017122661", // numéro de l'expéditeur (acheté chez Twilio) "body" => "Bonjour ! Ceci est un SMS de test de Twilio." ] );

echo "Message envoyé ! SID : " . $message->sid;?>


4. Envoi de SMS via SMS Aero (API REST)

SMS Aero utilise une clé API et un identifiant. La bibliothèque offre une interface pratique :

<?phprequire_once 'vendor/autoload.php';

use Smsaero\\Smsaero;

$client = new Smsaero('your_email@example.com', 'your_api_key');

// Envoi du message$response = $client->send('71234567890', 'Message de test de SMS Aero');

if ($response->success) { echo "SMS envoyé. ID : " . $response->id;} else { echo "Erreur : " . $response->error;}?>


5. Travailler avec smsc.ru (sans Composer)

Pour smsc.ru, vous pouvez utiliser des requêtes HTTP directes ou leur classe prête à l'emploi. Exemple simple via cURL :

<?php$login = "your_login";$password = "your_password";$phones = "71234567890";$message = "Bonjour de smsc.ru !";

$url = "https://smsc.ru/sys/send.php?login=" . urlencode($login) . "&psw=" . urlencode($password) . "&phones=" . urlencode($phones) . "&mes=" . urlencode($message) . "&fmt=3"; // fmt=3 — réponse en JSON

$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$response = curl_exec($ch);curl_close($ch);

$data = json_decode($response, true);if ($data['error'] ?? false) { echo "Erreur : " . $data['error'];} else { echo "SMS envoyé. ID : " . $data['id'];}?>


6. Gestion des erreurs et journalisation

Lors de l'envoi de SMS, il est important de gérer correctement les erreurs. Problèmes typiques :

  • Identifiants incorrects (401 Non autorisé).
  • Solde insuffisant.
  • Numéro sur liste noire.
  • Dépassement des limites d'envoi.

Exemple de gestion des exceptions pour Twilio :

<?phptry {    $message = $twilio->messages->create(...);    // journalisation du succès    error_log("SMS envoyé : " . $message->sid);} catch (Exception $e) {    // journalisation de l'erreur    error_log("Erreur d'envoi SMS : " . $e->getMessage());    echo "Erreur : " . $e->getMessage();}?>


7. Conclusion

L'intégration de l'envoi de SMS en PHP est simple grâce aux bibliothèques prêtes à l'emploi et aux API. Choisissez un fournisseur adapté à vos tâches, installez la bibliothèque via Composer et gérez les erreurs. Les exemples de code ci-dessus vous aideront à démarrer rapidement.

Recommendations