Bonjour,
Actuellement entrain de développer un système d'Infos Trafic pour une compagnie de transport, je dois envoyer des SMS pour informer les usagers à la publication d'une alerte.
J'ai crée un script fonctionnel mais alors vraiment pas optimisé..
J'ai honte d'avoir pondu un truc pareil
J'aimerais bien obtenir le même résultat mais je ne sais pas vraiment comment m'y prendre..
Voici le script en question (alerte_SMS.php) :
NOTE: Ce script est exécuté via une tache CRON toutes les 2 minutes.
Merci
Actuellement entrain de développer un système d'Infos Trafic pour une compagnie de transport, je dois envoyer des SMS pour informer les usagers à la publication d'une alerte.
J'ai crée un script fonctionnel mais alors vraiment pas optimisé..
J'ai honte d'avoir pondu un truc pareil
J'aimerais bien obtenir le même résultat mais je ne sais pas vraiment comment m'y prendre..
Voici le script en question (alerte_SMS.php) :
<?php
require '../../../includes/config.php';
require '../vendor/autoload.php';
use \Ovh\Api;
$endpoint = 'xxxx';
$applicationKey = "xxxx";
$applicationSecret = "xxxx";
$consumer_key = "xxxx";
//Connexion à l'API OVH
$conn = new Api($applicationKey, $applicationSecret, $endpoint, $consumer_key);
//Recherche si une alerte est à publier
$ReqInfosTrafic = $bdd->query("SELECT * FROM infostrafic WHERE CURRENT_TIMESTAMP() BETWEEN date_pub AND date_fin AND SMS = 1");
while ($data_InfosTrafic = $ReqInfosTrafic->fetch()) {
//Récupère le numéro des lignes concernées
$InfosTrafic_ligne = strtok($data_InfosTrafic['lignes'], ",");
while ($InfosTrafic_ligne !== false) {
$InfosTrafic_ligne = strtok(",");
$ReqLignesPourInfosTrafic = $bdd->query("SELECT * FROM data_lignes WHERE IDlignes = '{$InfosTrafic_ligne}'");
while ($data_lignes = $ReqLignesPourInfosTrafic->fetch()) {
//Récupère le numéro de téléphone du client en fonction de ses alertes
$ReqClientsAlertes = $bdd->query("SELECT * FROM clients_alertes a INNER JOIN clients c ON c.IDclient = a.client_ID WHERE a.SMS = 1 AND a.ligne_ID = '{$data_lignes['IDlignes']}'");
while ($data_ClientsAlertes = $ReqClientsAlertes->fetch()) {
//Envoi du SMS
$smsServices = $conn->get('/sms');
foreach ($smsServices as $smsService) {
print_r($smsService);
}
$content = (object) array(
"charset"=> "UTF-8",
"class"=> "phoneDisplay",
"coding"=> "7bit",
"message"=> $data_InfosTrafic['titre']." PLUS D'INFOS http://citel.dev/s/".$data_InfosTrafic['IDalerte'],
"noStopClause"=> true,
"priority"=> "high",
"receivers"=> [ $data_ClientsAlertes['telephone'] ],
"sender" => $nom_service,
"senderForResponse"=> false,
"validityPeriod"=> 2880
);
$resultPostJob = $conn->post('/sms/'. $smsServices[0] . '/jobs', $content);
print_r($resultPostJob);
$smsJobs = $conn->get('/sms/'. $smsServices[0] . '/jobs');
print_r($smsJobs);
} $ReqClientsAlertes->closeCursor();
} $ReqLignesPourInfosTrafic->closeCursor(); }
} $ReqInfosTrafic->closeCursor();
NOTE: Ce script est exécuté via une tache CRON toutes les 2 minutes.
Merci