API HTTPS SMS, Messages vocaux ENVOI DE MESSAGES PAR API HTTP OU HTTPS, EN XML OU JSON

API SMS Pro L’ API HTTP d’envoi de SMS Pro AllMySMS répond à un besoin simple : envoyer via HTTP ou HTTPS des SMS ou des messages vocaux direct répondeur à l’unité ou en nombre, immédiatement ou en différé, de la façon la plus rapide et la plus efficace qui soit, sans signer de contrat ni avoir à étudier de longue documentation technique. Dès que vous aurez créé un compte, vous pourrez automatiquement envoyer des SMS par HTTP ou HTTPS (sur demande) en plus du site (procédure ci-dessous), sous couvert d’avoir des crédits disponibles.Vous serez capable d’envoyer des SMS partout dans le monde en appelant l’API SMS HTTP depuis une page web, un script ou un logiciel dans la limite de votre crédit de SMS. Cette solution est particulièrement adaptée aux besoins des webmasters, développeurs ou professionnels qui souhaitent proposer une valeur ajoutée à leurs réalisations en y intégrant le SMS gratuitement.
Utilisant le protocole HTTP ou HTTPS, l’API SMS HTTP est intégrable dans toutes vos réalisations, quelque soit le langage (ASP, C, C++, Delphi, Java, JSP, PHP, WINDEV, etc…). Il suffit pour cela d’envoyer un flux XML ou JSON vers une url comme indiqué ci-dessous: 

Pas envie de coder?

allmysms.com est compatible avec de plus en plus de connecteurs automatisés, permettant la mise en relation de l’envoi de SMS avec des outils du marché. Si vous n’êtes pas très à l’aise avec le développement, ces outils permettent d’automatiser l’envoi de SMS dans votre CRM, votre ERP ou tout autre outil web du marché en quelques clics.
Voici les plateformes avec lesquelles nous sommes déjà compatibles:

Procédure d’utilisation de l’API HTTPS SMS AllMySMS

Notre API SMS HTTP fonctionne par transmission de paramètres en GET, ou de flux XML ou JSON en POST (entrants et sortants).
Pour envoyer des SMS ou des messages vocaux, des flux XML ou JSON contenant les informations d’envoi devront être transmis à la plateforme.
En retour, celle-ci renverra automatiquement un flux de réponse comportant des données brutes et des flux XML ou JSON (identifiants des envois et accusés de réception) en direct. Un identifiant unique sera retourné pour chaque SMS, afin d’en avoir obtenir ensuite l’accusé de réception.
Un système de WebHook, paramétrable dans votre espace client, vous permet de récupérer les accusés de réception et les SMS réponses en temps réel.

ADRESSE & PARAMETRES (GET OU POST)

https://api.allmysms.com/http/9.0/sendSms

La variable contenant le flux doit obligatoirement se nommer smsData

  • login: login du client fourni par allmysms.com
  • apiKey : clé d’API disponible depuis votre compte
  • smsData : flux XML ou JSON contenant le message et les numéros de téléphone

DOCUMENTATION

EXEMPLE :

Voici des exemples de codes pour que vous testiez nos services plus rapidement 😉

Script d’envoi de SMS en PHP

<?php
//config
$url        = 'https://api.allmysms.com/http/9.0/sendSms/';
$login      = 'yourlogin';                              //votre identifiant allmysms
$apiKey     = 'yourapikey';                             //votre clé d'API allmysms
$message    = 'Envoi de SMS test avec AllMySMS.com';    //le message SMS
$sender     = 'allmysms';                               //l’expéditeur, attention pas plus de 11 caractères alphanumériques
$msisdn     = '33612345678';                            //numéro de téléphone du destinataire
$smsData    = "<DATA>
   <MESSAGE><![CDATA[" . $message . "]]></MESSAGE>
   <TPOA>" . $sender . "</TPOA>
   <SMS>
      <MOBILEPHONE>" . $msisdn . "</MOBILEPHONE>
   </SMS>
</DATA>";

$fields = array(
    'login'    => $login,
    'apiKey'   => $apiKey,
    'smsData'  => $smsData,
);

$fieldsString = http_build_query($fields);

try {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);    // permet d’éviter le temps d'attente par défaut : 300 sec - optionnel
    curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 1024); // limite de detection des connexions lentes, en octets/sec (ici : 1 ko) - optionnel
    curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 1);     // coupe la connexion si en dessous de CURLOPT_LOW_SPEED_LIMIT pendant plus de CURLOPT_LOW_SPEED_TIME - optionnel

    $result = curl_exec($ch);

    echo $result;

    curl_close($ch);

} catch (Exception $e) {
    echo 'Api allmysms injoignable ou trop longue a repondre ' . $e->getMessage();
}

 

Script d’envoi de SMS en dotNet

string url = "https://api.allmysms.com/http/[version]/sendSms/";
string login = "yourlogin";
string apiKey = "yourapikey";

Uri uri = new Uri(url);

string data = "login="+login+"&apiKey="+apiKey+"&smsData=<DATA><MESSAGE><![CDATA[envoi de SMS en dotNet avec allmysms.com]]></MESSAGE><TPOA>EXPEDITEUR</TPOA><SMS><MOBILEPHONE>33612345678</MOBILEPHONE></SMS></DATA>";

byte[] Buffer = System.Text.Encoding.UTF8.GetBytes(data);

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Post;
request.ContentLength = Buffer.Length;
request.ContentType = "application/x-www-form-urlencoded";

using (Stream writer = request.GetRequestStream())
{
    writer.Write(Buffer, 0, Buffer.Length);
    writer.Flush();
    writer.Close();
}

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string tmp = reader.ReadToEnd();
response.Close();
Response.Write(tmp);

 

Script d’envoi de SMS en JAVA

import java.io.*;
import java.net.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
public class sendSms {
    public static void main(String[] args) throws Exception {
        String phoneNumber = "33612345678";
        String sender = "allmysms";
        String message = URLEncoder.encode("Envoi de SMS en Java avec allmysms.com STOP au 36180", "UTF-8");
        String login = "yourlogin";
        String apiKey = "yourapikey";
        String smsData = "<DATA><MESSAGE><![CDATA[["+message+"]]></MESSAGE><TPOA>"+sender+"</TPOA><SMS><MOBILEPHONE>"+phoneNumber+"</MOBILEPHONE></SMS></DATA>";
        String url = "https://api.allmysms.com/http/[version]/sendSms/?login=" + login + "&apiKey=" + apiKey + "&smsData=" + smsData;
        // Send GET request
                URL client = new URL(url);
                URLConnection conn = client.openConnection();
                InputStream responseBody = conn.getInputStream();
                // Convert in XML document

                byte[] contents = new byte[1024];

                int bytesRead=0;
                String strFileContents = null;
                while( (bytesRead = responseBody.read(contents)) != -1){
                   strFileContents = new String(contents, 0, bytesRead);
                }

                responseBody.close();
                System.out.println(strFileContents);
    }
}

 

Script d’envoi de SMS en WINDEV


PROCÉDURE Envoi_sms(Var_message, Var_nbr, Var_date)
 
//Var_message > Message à envoyer
//Var_nbr > Nombre de destinataires
//Var_date > Date différée ou immédiate au format Dateheure
//Sms_destinataire           > Tableau contenant les expéditeurs
 
LOCAL
SMS_Date est une DateHeure = Var_date // Format Date heure
SMS_Url        est une chaîne = "https://api.allmysms.com/http/9.0/sendSms/" // L'url de allmysms
SMS_Login est une chaîne  = "xxxxxxx" // Identifiant fournit par Allmysms
SMS_APIkey  est une chaîne = "xxxxxxxxxxxxxx" // Clé de contrôle
SMS_Data  est un Variant // Données structuré
SMS_Return est une chaîne = "JSON" // Format du retour
SMS_Post est une chaîne // Variable du Post
 
SI Var_date = "" ALORS SMS_Date = Maintenant()
 
//Message converti au format UTF8
SMS_Data.DATA.MESSAGE = ChaîneVersUTF8(Var_message)
 
//Ajout des destinataires
POUR i = 1 À Var_nbr
     SMS_Data.DATA.SMS[i].MOBILEPHONE = Sms_destinataire[i]
FIN
 
//Mise en forme de la date
SMS_Data.DATA.date = DateVersChaîne(SMS_Date,"AAAA-MM-JJ HH:MM:SS")
 
SMS_Data.DATA.TPOA = "Expediteur"
 
SMS_Post=ChaîneConstruit("login=%1&apiKey=%2&smsData=%3&returnformat=%4", SMS_Login, SMS_APIkey, VariantVersJSON(SMS_Data), SMS_Return)
 
// Requête
SI HTTPRequête(SMS_Url, "", "", SMS_Post)=Vrai ALORS
     vJSON est un Variant = JSONVersVariant(HTMLVersTexte(HTTPDonneRésultat(httpRésultat)))
     
     SI vJSON.status DANS ("100","101") ALORS
          Info("Votre SMS a bien été programmé")
     SINON
          Info("Erreur : ", vJSON.statusText, vJSON.status)
     FIN

SINON
     Erreur(ErreurInfo())
FIN

 

Script d’envoi de SMS en PERL

my $userAgent = new LWP::UserAgent;
$userAgent->protocols_allowed( [ 'https'] );

my $request = POST('https://api.allmysms.com/http/[version]/sendSms/',
[ 'login' => 'yourlogin', 'apiKey' => 'yourapikey', 'smsData' => '<DATA><MESSAGE><![CDATA[envoi de SMS en perl avec allmysms.com]]></MESSAGE><TPOA>EXPEDITEUR</TPOA><SMS><MOBILEPHONE>33612345678</MOBILEPHONE></SMS></DATA>'],
Content_Type => 'multipart/form-data');

my $response = $userAgent->request($request);

 

Script d’envoi de SMS en PYTHON

import urllib
import xml.etree.ElementTree as ET
smsData = '<![CDATA[envoi de SMS en python avec allmysms.com]]>EXPEDITEUR33612345678'
urlbase = 'http://api.msinnovations.com/http/sendSms_v8.php'
urlparam = urllib.urlencode([('clientcode','yourlogin'),('passcode','yourpasswd'),('smsData',smsData)])
response = ET.parse(urllib.urlopen(urlbase+urlparam)).getroot()
print response.findtext('status')

 

Script d’envoi de SMS en RUBY

url = URI.parse('https://api.allmysms.com/http/[version]/sendSms/')
req = Net::HTTP::Post.new(url.path)
req.set_form_data({'login'=>'yourlogin','apiKey'=>'yourapikey','smsData'=>'<DATA><MESSAGE><![CDATA[envoi de SMS en windev avec allmysms.com]]></MESSAGE><TPOA>EXPEDITEUR</TPOA><SMS><MOBILEPHONE>33612345678</MOBILEPHONE></SMS></DATA>'}, '&')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
res = http.start {|http| http.request(req) }

 

Script d’envoi de SMS en C#

using System;
using System.Net;
using System.Xml;

namespace TestSendSMS
{
    class TestSendSMS
    {
        static void Main(string[] args)
        {
            // Init parameters
            String login = "yourlogin";
            String apiKey = "yourapikey";
            String smsData = "<DATA><MESSAGE><![CDATA[envoi de SMS en C sharp avec allmysms.com]]></MESSAGE><TPOA>EXPEDITEUR</TPOA><SMS><MOBILEPHONE>33612345678</MOBILEPHONE></SMS></DATA>";
            String url = "https://api.allmysms.com/http/[version]/sendSms/?login=" + login
                + "&apiKey=" + apiKey + "&smsData=" + smsData;

            // Send GET request
            WebClient client = new WebClient();
            string result = client.DownloadString(url);
            Console.WriteLine("Result : " + result);

            // Parse the returned XML
            XmlDocument document = new XmlDocument();
            document.LoadXml(result);
            Console.WriteLine("Status code : "
                + document.GetElementsByTagName("status")[0].InnerText);
        }
    }
}

 

Script d’envoi de SMS en VB

Option explicit
Const login = "yourlogin"
Const apiKey = "yourapikey"
Dim smsData
smsData = "<DATA><MESSAGE><![CDATA[envoi de SMS en vb avec allmysms.com]]></MESSAGE><TPOA>EXPEDITEUR</TPOA><SMS><MOBILEPHONE>33612345678</MOBILEPHONE></SMS></DATA>"

EnvoiSms clientCode,passCode,smsData

Sub EnvoiSms(clientCode, passCode, smsData)
    Dim xmlDoc,stUrl
    stUrl = "https://api.allmysms.com/http/[version]/sendSms/?login=" & _
        login &"&apiKey=" & apiKey & "&smsData=" & Escape(smsData)
    Set xmlDoc=CreateObject("Microsoft.XMLDOM")
    xmlDoc.Async="false"
    if xmlDoc.Load(stUrl) and not xmldOC.selectSingleNode("/") is Nothing Then
        Msgbox "status = " & xmldOC.selectSingleNode("/").text
     else
        MsgBox "Pb sending", vbCritical
    End if
End sub

 

 

TABLEAU DES STATUTS SMS APRES ENVOI

100 Le message a été envoyé
101 Le message a été programmé pour un envoi différé
102 Problème de connexion – Aucun compte ne correspond aux clientcode et passcode spécifiés
103 Crédit SMS épuisé. Veuillez re-créditer votre compte sur AllMySMS.com
104 Crédit insuffisant pour traiter cet envoi. A utiliser: XX Crédits, Disponibles: YY Crédits. Veuillez re-créditer votre compte sur AllMySMS.com
105 Flux XML Vide
106 Flux XML invalide ou incomplet après la balise
107 Flux XML invalide ou incomplet après la balise
108 Le code CLIENT donné dans le flux XML est incorrect, il doit correspondre au clientcode en majuscule
109 Flux XML invalide ou incomplet après la balise
110 Message non défini (vide) dans le flux XML
111 Le message dépasse 640 caractères
112 Flux XML invalide ou incomplet après la balise
113 Certains numéros de téléphone sont invalides ou non pris en charge
114 Aucun numéro de téléphone valide dans le flux. Veuillez-vous référer à la documentation en ligne pour connaitre les formats valides.
115 Flux XML invalide ou date mal formatée entre les balises et
117 Balise – Lien trop long, dépasse les 80 caractères
118 Le compte maître spécifié n’existe pas

EXEMPLE DE FLUX XML D’ENVOI DE SMS


<DATA>
   <MESSAGE><![CDATA[Votre message]]></MESSAGE>
   <DYNAMIC>2 (contiendra le nombre de paramètres variables du message)</DYNAMIC> (obligatoire si le message est variable)
   <CAMPAIGN_NAME>nom de campagne </CAMPAIGN_NAME> (option facultative)
   <DATE>date différée facultative ex.: 2011-11-05 15:10:00 </DATE> (option facultative)
   <TPOA>nom de l’émetteur (option facultative)</TPOA>
   <SMS>
      <MOBILEPHONE>33611111111</MOBILEPHONE>
      <PARAM_1>Parametre 1</PARAM_1>
      <PARAM_2>Parametre 2</PARAM_2>
   </SMS>
   <SMS>
      <MOBILEPHONE>33622222222</MOBILEPHONE>
      <PARAM_1>Parametre 1</PARAM_1>
      <PARAM_2>Parametre 2</PARAM_2>
   </SMS>
</DATA>

EXEMPLE DE FLUX JSON D’ENVOI DE SMS


{
   "DATA": {
      "CAMPAIGN_NAME": "Nom de la campagne",
      "MESSAGE": "Votre message",
      "TPOA": "Nom de l’émetteur",
      "DYNAMIC": "2",
      "DATE": "2014-01-01 12:00:00",
      "SMS": [
         {
         "MOBILEPHONE": "33611111111",
         "PARAM_1": "Parametre 1",
         "PARAM_2": "Parametre 2"
         },
         {
         "MOBILEPHONE": "33622222222",
         "PARAM_1": "Parametre 1",
         "PARAM_2": "Parametre 2"
         }
      ]
   }
}


Découvrez nos autres API :