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:
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: https://www.smsmasivos.es/api/send. La pasarela API SMS requiere las siguientes variables:
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:
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: https://www.smsmasivos.es/api/credit. El API SMS requiere las siguientes variables:
La pasarela http, responderá uno de los siguientes mensajes:
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 = 'https://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; ?>
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="https://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="https://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>
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("https://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(); } }
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("https://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("https://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; } }