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

imac_api_httpL’ API HTTP d’envoi de SMS AllMySMS répond à un besoin simple : envoyer via HTTP ou HTTPS des SMS à 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.
L’API SMS HTTP donne accès aux deux qualités d’envoi: Premium et Low Cost.

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++, Deplhi, Java, JSP, PHP, WINDEV, etc…). Il suffit pour cela d’envoyer un flux XML ou JSON vers une url comme indiqué ci-dessous:

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

Notre API SMS HTTP fonctionne par transmission de flux XML ou JSON entrants et sortants vers une URL fournie.
Pour envoyer des SMS, 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.

ADRESSE & PARAMETRES (GET OU POST)

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

La variable contenant le flux doit obligatoirement se nommer smsData

  • clientcode : login du client fourni par MS Innovations
  • 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 :

Allmysms.com met à votre disposition 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/[version]/sendSms/';
$login = 'yourlogin';    //votre identifant allmysms
$apiKey   = 'yourapikey';    //votre mot de passe allmysms
$message    = 'Envoi de SMS test avec AllMySMS.com';    //le message SMS, attention pas plus de 160 caractères
$sender     = 'expediteur';  //l'expediteur, 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'    => urlencode($login),
'apiKey'      => urlencode($apiKey),
'smsData'       => urlencode($smsData),
);

$fieldsString = "";
foreach($fields as $key=>$value) {
    $fieldsString .= $key.'='.$value.'&';
}
rtrim($fieldsString, '&');

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);

    $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 = "EXPEDITEUR";
        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

sLogin est une chaîne
sLogin="yourlogin"

sApiKey est une chaîne
sApiKey="yourapikey"

sUrl est une chaîne
sUrl ="https://api.allmysms.com/http/[version]/sendSms/"

sFlux est une chaîne
sFlux="<DATA><MESSAGE><![CDATA[envoi de SMS en windev avec allmysms.com]]></MESSAGE><TPOA>EXPEDITEUR</TPOA><SMS><MOBILEPHONE>33612345678</MOBILEPHONE></SMS></DATA>"

// Paramètres Post
sParametrePost est une chaîne
sParametrePost=ChaineConstruit("login=%1&apiKey=%2&smsData=%3",sLogin, sApiKey, sFlux)

// Requête
SI HTTPRequete(sUrl, "", "",sParametrePost)=Vrai ALORS
Info("Votre SMS a bien été envoyé")
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 = '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# 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

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