Ce guide va vous permettre d’envoyer des SMS au travers d’un script en PHP sur mesure et de l’API RESTful d’OVH. Si vous souhaitez librairie plus haut niveau et prête à l'emploi, nous vous invitons à utiliser le projet OVH php-ovh-sms sut Github.

Mise en place de l’environnement

.

Récupération du Wrapper PHP for OVH APIs

votre projet avec Composer
votre projet avec Composer
Rendez vous sur le projet https://github.com/ovh/php-ovh

Vous allez pouvoir intégrer le wrapper PHP rapidement grâce à composer : https://getcomposer.org/

Suivez les instructions sur GitHub, créez le fichier composer.json comme indiqué dans le projet :
GitHub> Readme > Quickstart

Vous allez récupérer dans votre projet le répertoire ./vendor/ovh/ovh/ ainsi que le fichier autoload.php permettant de gérer toutes les dépendances et les imports.
.

Création des identifiants

création des tokens
création des tokens
Nous sommes dans le cas où nous avons besoin d’identifiants pour consommer l’API SMS, ces identifiants sont créés une fois pour identifier l’application qui va envoyer des SMS. La durée de vie de ces identifiants est paramétrable.
Créez vos identifiants de Script (all keys at once) sur cette page:
https://api.ovh.com/createToken (cette url vous permet d'avoir automatiquement les bons droits pour ce guide).
récupération des tokens
récupération des tokens
Dans cet exemple simple, nous récupérons les droits pour avoir accès aux informations sur le compte, à la possibilité de voir les envois en attente et à la possibilité d’envoyer des SMS.

  • GET /sms
  • GET /sms/*
  • POST /sms/*
  • PUT /sms/*
  • DELETE /sms/*

L’étoile (*) active les appels à ces méthodes pour tous vos comptes SMS, vous pouvez également restreindre les appels à un seul compte si vous gérez plusieurs comptes SMS sur votre compte OVH en remplaçant '/sms' par '/sms/NOM-DU-COMPTE' et '/sms/*' par '/sms/NOM-DU-COMPTE/*'

Vous récupérez vos identifiants pour votre script :
  • Application Key (identifie votre application)
  • Application Secret (authentifie votre application)
  • Consumer Key (autorise l'application à accéder aux méthodes choisies)
L'environnement est prêt, les identifiants sont créés, vous êtes prêt pour coder votre script PHP.

Script PHP d'envoi de SMS

.

SDK PHP

Pour plus de simplicité nous avons mis en place un SDK PHP que vous pouvez retrouver ici.
.

Connexion basique à l'API

Nous allons maintenant tester la bonne connexion à l’API en affichant les détails de chaque compte SMS:
<?php
/**
 * Liste et affiche le détail de chaque compte SMS
 * 
 * Rendez-vous sur https://api.ovh.com/createToken/index.cgi?GET=/sms&GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/*
 * pour générer les clés d'accès API pour:
 *
 * GET /sms
 * GET /sms/*
 * POST /sms/*
 * PUT /sms/*
 * DELETE /sms/*
 */

require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

$endpoint = 'ovh-eu';
$applicationKey = "your_app_key";
$applicationSecret = "your_app_secret";
$consumer_key = "your_consumer_key";

$conn = new Api(    $applicationKey,
                    $applicationSecret,
                    $endpoint,
                    $consumer_key);
     
$smsServices = $conn->get('/sms/');
foreach ($smsServices as $smsService) {

    print_r($smsService);
}

?>
Vous devriez récupérer au lancement de ce script la liste de vos comptes SMS.
.

Envoi du premier SMS

Pour envoyer des SMS, nous utilisons la méthode POST jobs : https://api.ovh.com/console/#/sms/{serviceName}/jobs#POST

Le paramètre senderForResponse va permettre d’utiliser un numéro court ce qui nous permet d’envoyer directement des SMS sans devoir créer un expéditeur (ex : votre nom).
Les numéros courts permettent aussi de recevoir des réponses de la part des personnes ayant reçu le SMS, ce qui peut être utile pour une enquête de satisfaction, une application de vote, un jeu...

<?php
/**
 * Envoie un SMS puis affiche la liste des SMS en attente d’envoi.
 * 
 * Rendez-vous sur https://api.ovh.com/createToken/index.cgi?GET=/sms&GET=/sms/*&PUT=/sms/*&DELETE=/sms/*&POST=/sms/*
 * pour générer les clés d'accès API pour:
 *
 * GET /sms
 * GET /sms/*
 * POST /sms/*
 * PUT /sms/*
 * DELETE /sms/*
 */

require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

$endpoint = 'ovh-eu';
$applicationKey = "your_app_key";
$applicationSecret = "your_app_secret";
$consumer_key = "your_consumer_key";

$conn = new Api(    $applicationKey,
                    $applicationSecret,
                    $endpoint,
                    $consumer_key);
     
$smsServices = $conn->get('/sms/');
foreach ($smsServices as $smsService) {

    print_r($smsService);
}

$content = (object) array(
	"charset"=> "UTF-8",
	"class"=> "phoneDisplay",
	"coding"=> "7bit",
	"message"=> "Bonjour les SMS OVH par api.ovh.com",
	"noStopClause"=> false,
	"priority"=> "high",
	"receivers"=> [ "+3360000000" ],
	"senderForResponse"=> true,
	"validityPeriod"=> 2880
);
$resultPostJob = $conn->post('/sms/'. $smsServices[0] . '/jobs/', $content);

print_r($resultPostJob);

$smsJobs = $conn->get('/sms/'. $smsServices[0] . '/jobs/');
print_r($smsJobs);
        
?>
Voici le type de réponse attendue :
sms-XXXXXX-1
Array
(
    [totalCreditsRemoved] => 1
    [invalidReceivers] => Array
        (
        )

    [ids] => Array
        (
            [0] => 26929925
        )

    [validReceivers] => Array
        (
            [0] => +3360000000
        )

)
Array
(
)
On récupère bien le compte SMS (ServiceName), on obtient une réponse avec 1 crédit consommé pour un numéro valide, enfin on constate qu'il n’y pas de SMS en attente d’envoi.

Conclusion

Ce guide vous a permis d'envoyer votre premier SMS en API RESTful d'OVH. Vous pouvez maintenant poursuivre l'intégration de ce service dans votre application. La console d'API vous permettra de découvrir d'autres méthodes (https://api.ovh.com/console/#/sms) pour faciliter l'intégration de services tels que : SMS réponses, envoi en masse avec fichier CSV, publipostage, suivi des accusés de reception...