Envoyer des SMS depuis la ligne de commande
1Présentation
Ce mini-tutoriel a pour but de créer une commande CLI servant à envoyer des SMS à des téléphones portables.
Pour envoyer les SMS, nous utiliserons le service smsmode.com, qui fournit une API. Temma propose une source de données afin de manipuler cette API de manière transparente.
En prérequis, vous devrez donc vous créer un compte sur smsmode.com, puis générer une clé d'API dans l'interface utilisateur.
2Création du projet
Si vous avez déjà un projet Temma existant, vous pouvez sauter cette étape.
Si le projet Temma ne servira pas à servir un site web, et que vous n'aurez pas à traiter des templates Smarty, vous pouvez installer le projet avec la commande suivante
$ composer create-project digicreon/temma-project-api mon_api |
Si par contre vous souhaitez créer un projet Temma complet, qui pourra aussi servir pour un site web, installez-le de cette manière :
$ composer create-project digicreon/temma-project-web mon_site |
3Configuration
Nous nous en tiendrons à une configuration minimale, contenant le strict nécessaire.
Éditez le fichier etc/temma.php :
<?php
return [
'application' => [
'dataSources' => [
'sms' => 'smsmode://API_KEY'
],
],
];
- Ligne 6 : Définition de la source de données connectée à smsmode. Remplacez API_KEY par votre clé d'API smsmode.
4Contrôleur
Avec Temma, les commandes CLI s'écrivent comme des contrôleurs web, qui sont exécutés grâce au programme comma.
Ici, nous allons créé un contrôleur Sms, qui contiendra une action send.
Pour cela, créez le fichier cli/Sms.php :
<?php
/** Contrôleur Sms. */
class Sms extends \Temma\Web\Controller {
/**
* Action servant à envoyer des SMS.
* @param string $cellphone Numéro de téléphone du destinataire.
* @param string $msg Message textuel à envoyer.
*/
public function send(string $cellphone, string $msg) {
// envoi du message
$this->sms[$cellphone] = $msg;
}
}
Comme vous pouvez le voir, le code est très simple.
L'action prend deux paramètres : le numero de téléphone du destinataire, et le message à envoyer.
5Exécution
L'exécution du contrôleur se fait comme pour toute commande CLI de Temma, en passant par le programme comma :
Il est possible d'envoyer le même message à plusieurs destinataires, en listant les numéros de téléphones séparés par des virgules :