Este sitio web utiliza cookies para asegurarte una mejor experiencia. Al navegar por nuestro sitio, aceptas el uso de las mismas. Pulsa para ver más información sobre las cookies.
Pruébalo gratis

API SMS

API SMS - Documentación técnica

API SMS es una pasarela de envío de mensajes SMS para que los programadores puedan integrar SMS en sus procesos, tales como alertas, notificaciones a sus clientes o a terceros, etc..

Para realizar cualquiera de las operaciones serán necesarios el nombre de usuario y el ApiID. El nombre de usuario es el mismo que usó para darse de alta en SMSMasivos.es, y el que utiliza para entrar en la zona de usuario. El ApiID es una clave única que le identifica, distinta a su password. Encontrará su ApiID, entrando en su zona de usuario, en la opción "Mis datos -> APIID".

La pasarela API SMS funciona a través del protocolo HTTP. Actualmente se pueden hacer dos operaciones distintas:

  • Enviar mensajes: operación mediante la cuál se pueden enviar hasta 50 mensajes SMS simultáneamente con una sola llamada.
  • Consultar el crédito: sirve para comprobar si tenemos crédito disponible para hacer envíos..

API SMS - Pasarela HTTP_SMS

La pasarela HTTP forma parte de la infraestructura que infoAvisos le ofrece para el envío de mensajes cortos a móviles (SMS) a través de protocolos estándar de Internet. Puede usar este API SMS como medio de comunicación para sus propias aplicaciones, o como medio para enviar mensajes desde una página web.

La pasarela HTTP se comporta como un CGI. Recibe las variables por el método POST, y una vez validada la operación, inicia el proceso del mensaje. A su vez, responde con una confirmación del proceso.

Detalles técnicos

El método de envío de los datos debe ser POST. La url de conexión es: http://www.smsmasivos.es/api/send. La pasarela API SMS requiere las siguientes variables:

  • login: Login proporcionado en el email de bienvenida.
  • apID: apiID proporcionado en el email de bienvenida.
  • phone_1: número de teléfono de destino. El número de teléfono requiere el código de país. Ejemplo: +34616665544.
  • text_1: cuerpo del mensaje a enviar al número de teléfono definido en el campo ia_phone1. La longitud máxima de este campo debe ser 160 caracteres. Distintos textos para uno o varios receptores

Si desea enviar más de un mensaje en la misma llamada, puede usar las variables phone_2 y text_2, phone_3 y text_3, etc, hasta la cantidad máxima de 50 mensajes SMS.

A modo de ejemplo, veamos el caso en el que quisiéramos enviar tres mensajes inmmediatamente. Tendríamos las siguientes variables:

login = milogin
apiID = miapiID
phone_1 = +34600000001
text_1 = Avería del aire acondicionado en la planta 3
phone_2 = +34600000002
text_2 = La puerta de la sala de reuniones ya ha sido arreglada
phone_3 = +34600000003
text_3 = Cristal de la ventana roto en el despacho 2
...

Confirmación de la recepción de los SMS

El API SMS responderá uno de los siguientes mensajes:

  • NOT ALLOWED x: Significando que la pasarela ha rechazado el envío. Puede ser un problema de login o de aplicación. Donde x es el número de error. (x=1 -> supera los 50 destinatarios, x=3 -> login incorrecto, x=4 -> error de aplicación).
  • NO CREDIT x: Significando que se ha agotado el crédito para esa cuenta de usuario.
  • En el caso que la petición http sea correcta, el sistema devolverá un número de mensaje más un OK . Según el ejemplo anterior, el sistema devolvería: 1-OK (salto de linea); 2-OK (salto de linea); 3-OK (salto de linea)…
  • En el caso de que se nos acabe el crédito enmedio de un envío,el sistema devolverá: 1-OK (salto de linea); 2-OK (salto de linea); 3-NO CREDIT.
  • En el caso de que un envío sea malo dentro de los posibles 50 envios, el sistema devolverá: 1-OK (salto de linea); 2-OK (salto de linea); 3-BAD FORMATTED
  • Cualquier otra respuesta significa que ha habido algún error interno de la pasarela http. Póngase en contacto con nosotros.

API SMS - Consulta de crédito

Existe una URL de consulta de crédito. En esta podrá automatizar procesos para recibir respuesta inmediata de su crédito.

El método de envío de los datos debe ser POST. La url de conexión es: http://www.smsmasivos.es/api/credit. El API SMS requiere las siguientes variables:

  • login: Login proporcionado en el email de bienvenida
  • apiID: apiID proporcionado en el email de bienvenida

La pasarela http, responderá uno de los siguientes mensajes:

  • NOT ALLOWED x: Significando que la pasarela ha rechazado la petición. Puede ser un problema de login o de aplicación. Donde x es el número de error: x=2 -> login incorrecto; x=3 -> error de aplicación
  • NO CREDIT: Significando que tiene un crédito incorrecto para esa cuenta.
  • En el caso que la petición http sea correcta, el sistema devolverá el crédito para esa cuenta. Si su crédito está agotado, devolverá un 0.
  • Cualquier otra respuesta significa que ha habido algún error interno de la pasarela http. Póngase en contacto con nosotros.

API SMS - Enviar SMS en PHP

Ejemplo API SMS en PHP. Con este script en PHP podrás enviar SMS.

<?php

/*
 * Enviamos un solo mensaje
 */   
 
$login = "login";
$apiID = "API ID";
$phone = "+34666666666";
$text = "Texto a enviar en el sms";
$fields_string = "";

//Preparamos las variables que queremos enviar
$url = 'http://www.smsmasivos.es/api/send';
$fields = array(
                        'login'=>urlencode($login),
                        'apiID'=>urlencode($apiID),
                        'phone_1'=>urlencode($phone),
                        'text_1'=>urlencode($text)
                );

//Preparamos el string para hacer POST (formato querystring)
foreach($fields as $key=>$value) { 
$fields_string .= $key.'='.$value.'&'; }
$fields_string = rtrim($fields_string,'&');


//abrimos la conexión
$ch = curl_init();

//configuramos la URL, número de variables POST y los datos POST
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//ejecutamos POST
$result = curl_exec($ch);

//cerramos la conexión
curl_close($ch);

//Mostramos el resultado
echo "result:" . $result;

?>

API SMS - Enviar SMS en ColdFusion

Ejemplo de API SMS en ColdFusion. Con este script en ColdFusion podrás enviar SMS y consultar tu crédito.

<!--- Parámetros que usaremos --->
<cfscript>
  login = "login";
  apiID = "API ID";
  phone = "+34666666666";
  text = "Texto a enviar en el sms";
</cfscript>

<!--- Envío de un mensaje --->
<cfhttp method="POST" 
url="http://www.smsmasivos.es/api/send">
    <cfhttpparam name="login" value="#login#" type="formfield">
    <cfhttpparam name="apiID" value="#apiID#" type="formfield">
    <cfhttpparam name="phone_1" value="#phone#" type="formfield">
    <cfhttpparam name="text_1" value="#text#" type="formfield">
</cfhttp>

<cfoutput>Envío de SMS, resultado: #CFHTTP.statuscode#, 
#CFHTTP.filecontent#</cfoutput>

<!--- Consulta del crédito disponible --->
<cfhttp method="POST" 
url="http://www.smsmasivos.es/api/credit">
    <cfhttpparam name="login" value="#login#" type="formfield">
    <cfhttpparam name="apiID" value="#apiID#" type="formfield">
</cfhttp>

<cfoutput>Consulta de crédito, resultado: #CFHTTP.statuscode#, 
#CFHTTP.filecontent#</cfoutput>

API SMS - Enviar SMS en Java

Ejemplo de API SMS en Java. Con este script en Java podrás enviar SMS.

import java.io.*;
import java.net.*;

/*
 * EnviarMensajes
 * Enviamos un solo mensaje
 */   
public class EnviarMensaje {
  public static void main(String[] args) throws Exception {
  
    /* 
     * Preparamos un string con las 4 variables: 
login, apiID, phone_1, texto_1
     * El contenido de las variables va "URLEncoded"
     */           
      String mensajeAEnviar = "login=" 
          + URLEncoder.encode("login", "UTF-8") 
          + "&apiID=" 
          + URLEncoder.encode("API ID", "UTF-8")
          + "&phone_1=" 
          + URLEncoder.encode("+34666666666", "UTF-8")
          + "&text_1=" 
          + URLEncoder.encode("Texto a enviar en el sms", "UTF-8");
  
    /* Conectamos con esa URL */
      URL url = new 
      URL("http://www.smsmasivos.es/api/send");
      URLConnection connection = url.openConnection();
      connection.setDoOutput(true);
  
    /* Enviamos el contenido que habíamos preparado antes */
      OutputStreamWriter out = new OutputStreamWriter(
      connection.getOutputStream());
      out.write(mensajeAEnviar);
      out.close();
  
    /* Recogemos la respuesta que devuelve el servidor */
      BufferedReader in = new BufferedReader(
                  new InputStreamReader(
                  connection.getInputStream()));
      
    /* Hacemos el tratamiento que queramos. 
    En este caso, mostramos lo recibido */            
      String decodedString;
  
      while ((decodedString = in.readLine()) != null) {
          System.out.println(decodedString);
      }
  
      in.close();
  }
}

API SMS - Enviar SMS en C#

Ejemplo de API SMS en C#. Con este script en C# podrás enviar SMS.

public string ConsultarSaldoSMS(string login, string id)
  {
   String parametros = "login=" +
   System.Web.HttpUtility.UrlEncode(login
   ) + "&apiID=" + System.Web.HttpUtility.UrlEncode(id);
   return 
   (HttpPost("http://www.smsmasivos.es/api/credit", 
   parametros));
   }

   public string EnviarSMS(string login, string id, string phone, 
   string text)
   {
       String parametros = "login=" +
        System.Web.HttpUtility.UrlEncode(login) + "&apiID=" 
       + System.Web.HttpUtility.UrlEncode(id) + "&phone_1=" 
       + System.Web.HttpUtility.UrlEncode(phone) + "&text_1=" 
       + System.Web.HttpUtility.UrlEncode(text);
       return 
       (HttpPost("http://www.smsmasivos.es/api/send", 
       parametros));
   }

   string HttpPost(string url, string parametros)
   {
       WebRequest webRequest = WebRequest.Create(url);
      webRequest.ContentType = 
      "application/x-www-form-urlencoded";
      webRequest.Method = "POST";
      byte[] bytes = Encoding.ASCII.GetBytes(parametros);
      Stream os = null;
      try
      { // Enviar Post
         webRequest.ContentLength = bytes.Length;   //Contar bytes a enviar
         os = webRequest.GetRequestStream();
         os.Write (bytes, 0, bytes.Length);         //enviar
      }
      catch (WebException ex)
      {
         return( ex.Message);
      }
      finally
      {
         if (os != null)
         {
            os.Close();
         }
      }
      try
      { // Obtener la Respuesta
         WebResponse webResponse = webRequest.GetResponse();
         if (webResponse == null) 
            { return null; }
         StreamReader sr = new StreamReader 
         (webResponse.GetResponseStream());
         return sr.ReadToEnd ().Trim ();
      }
      catch (WebException ex)
      {
          return (ex.Message);
      }
      return null;
   } 
    }