Pierre-Henry Soria – Articles en français sur la technologie et la vie intentionnelle

Comment envoyer un SMS avec PHP via une API

Envoyer un SMS depuis PHP est simple. Le faire proprement demande un fournisseur, un numéro autorisé, une gestion des erreurs et le consentement du destinataire.

Mon ancien article parlait d’une méthode gratuite. Ce n’est plus une promesse sérieuse. Les passerelles changent, les opérateurs filtrent les abus et les envois réels ont un coût.

Voici un exemple avec Twilio. Le principe reste proche chez d’autres fournisseurs.

Installer le SDK PHP

Dans ton projet, installe la bibliothèque officielle avec Composer :

1composer require twilio/sdk

Crée un compte, choisis un numéro compatible avec le pays visé et termine les éventuelles vérifications demandées. Les obligations varient selon le pays et le type de numéro.

Garder les secrets hors du code

Définis les identifiants dans l’environnement :

1export TWILIO_ACCOUNT_SID='ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
2export TWILIO_AUTH_TOKEN='ton_secret'
3export TWILIO_FROM_NUMBER='+15017122661'
4export TWILIO_TO_NUMBER='+32470000000'

N’ajoute jamais ces valeurs dans Git. En production, utilise de préférence une clé API avec des droits limités. La documentation Twilio recommande aussi de protéger les identifiants et de terminer les enregistrements requis.

Envoyer le message

 1<?php
 2
 3declare(strict_types=1);
 4
 5require __DIR__ . '/vendor/autoload.php';
 6
 7use Twilio\Rest\Client;
 8
 9$sid = getenv('TWILIO_ACCOUNT_SID');
10$token = getenv('TWILIO_AUTH_TOKEN');
11$from = getenv('TWILIO_FROM_NUMBER');
12$to = getenv('TWILIO_TO_NUMBER');
13
14if (!$sid || !$token || !$from || !$to) {
15    throw new RuntimeException('La configuration Twilio est incomplète.');
16}
17
18$client = new Client($sid, $token);
19
20$message = $client->messages->create(
21    $to,
22    [
23        'from' => $from,
24        'body' => 'Votre rendez-vous est confirmé pour demain à 10 h.',
25    ]
26);
27
28printf("Message créé : %s\n", $message->sid);

Les numéros doivent utiliser le format international E.164, avec le signe + et l’indicatif du pays.

Prévoir les échecs

La création d’un message ne garantit pas sa livraison. Enregistre son identifiant et suis son statut avec les callbacks prévus par le fournisseur. Vérifie la signature de chaque callback avant de lui faire confiance. Prévois aussi les numéros invalides, les refus de l’opérateur et les limites de débit.

Pour une application réelle, place l’envoi dans une file de tâches. Une requête web ne doit pas rester bloquée pendant un appel externe. Associe aussi chaque demande à un identifiant interne afin qu’une nouvelle tentative ne crée pas un second message sans contrôle.

Respecter le destinataire

N’envoie pas de publicité à une personne qui n’a rien demandé. Conserve la preuve du consentement, annonce clairement l’expéditeur et propose une méthode de désinscription. Pour un message transactionnel, limite le contenu à l’information attendue.

Le code est la partie facile. La qualité d’un système SMS repose surtout sur le consentement, la sécurité des secrets et le suivi de livraison.


Pierre-Henry Soria

GitHub · PierreWriter.com · YouTube

<< Previous Post

|

Next Post >>

#PHP #Sms #Api #Twilio #Sécurité