Envoi de SMS en PHP : API des bibliothèques sms.ru et autres services

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 solutions prêtes à l'emploi



Dans les applications web modernes, l'envoi de messages SMS reste une fonctionnalité très demandée : confirmation d'inscription, authentification à deux facteurs, notifications de statut de commande. Dans cet article, nous allons voir comment implémenter l'envoi de SMS en PHP à l'aide de bibliothèques API et de services populaires. Nous examinerons à la fois les SDK officiels et les solutions légères basées sur cURL.



1. Choix du fournisseur SMS et de la bibliothèque



Avant de commencer, vous devez vous inscrire à l'un des services SMS et obtenir une clé API. Pour PHP, il existe plusieurs options éprouvées :



  • sms.ru – service russe populaire avec une API simple et une bibliothèque PHP officielle.
  • Twilio – géant international avec un SDK puissant pour PHP (twilio/sdk).
  • ClickSend – service polyvalent prenant en charge l'API REST.
  • Classe cURL simple – si vous ne souhaitez pas ajouter de dépendances externes.


2. Installation des bibliothèques via Composer



Pour travailler avec Twilio ou ClickSend, il est plus pratique d'utiliser Composer. Exemple d'installation :



composer require twilio/sdkcomposer require clicksend/clicksend-php


Pour sms.ru, la bibliothèque officielle s'installe également via Composer :



composer require smsru/smsru


Si vous préférez ne pas utiliser de gestionnaire de dépendances, vous pouvez télécharger les fichiers PHP manuellement depuis GitHub ou écrire votre propre classe basée sur cURL.



3. Exemple d'envoi de SMS via sms.ru



Le service sms.ru fournit une API simple et claire. Voici un exemple d'envoi de message utilisant la bibliothèque officielle :



<?phprequire_once 'vendor/autoload.php';

use SMSRU\\SMSRU;

$sms = new SMSRU('VOTRE_CLÉ_API');

$data = new stdClass();$data->to = '79123456789'; // Numéro du destinataire$data->text = 'Message de test'; // Texte du SMS$data->from = 'MySite'; // Nom de l'expéditeur (signature)

$response = $sms->send_one($data);

if ($response->status == 'OK') { echo "Message envoyé. ID : " . $response->sms_id;} else { echo "Erreur : " . $response->status_text;}?>


Important : au préalable, dans votre compte sms.ru, vous devez enregistrer la signature de l'expéditeur et créditer votre solde.



4. Envoi de SMS via le SDK Twilio



Twilio est l'un des services les plus fiables pour l'envoi international. Exemple de code en PHP :



<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

$account_sid = 'VOTRE_ACCOUNT_SID';$auth_token = 'VOTRE_AUTH_TOKEN';$twilio_number = '+1234567890'; // Numéro obtenu chez Twilio

$client = new Client($account_sid, $auth_token);

$message = $client->messages->create( '+79123456789', // Numéro du destinataire [ 'from' => $twilio_number, 'body' => 'Bonjour de Twilio et PHP !' ]);

echo "Envoyé avec l'ID : " . $message->sid;?>


Twilio prend en charge la communication bidirectionnelle, les webhooks et la vérification du statut de livraison.



5. Implémentation sans bibliothèques externes (cURL)



Si vous ne souhaitez pas utiliser Composer, vous pouvez écrire une fonction universelle avec cURL. Exemple pour sms.ru :



<?phpfunction sendSms($api_key, $phone, $message) {    $url = 'https://sms.ru/sms/send';    $params = [        'api_id' => $api_key,        'to' => $phone,        'msg' => $message,        'json' => 1    ];

$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch); curl_close($ch);

return json_decode($response, true);}

$result = sendSms('

Recommendations