Como enviar SMS desde tu aplicacion usando c#

En multitud de ocasiones puede ser muy interesante que nuestra aplicación pueda comunicarse con nuestros clientes mediante SMS, permitiéndonos un mejor servicio. En este articulo vamos a ver como podemos integrar esta funcionalidad en cualquier aplicación escrita en c#, usando los servicios de SMS Up, como la SMS gateway API.

Enviar mensajes de texto con c#

Lo primero que necesitamos en nuestra clave API que permitirá que la aplicación pueda comunicarse con SMS Up. Puedes ver esta clave en el menú API, dentro de tu cuenta. Si no tienes ya una puedes crear una cuenta rápidamente.

Ahora solo tenemos que realizar una petición POST a la API, enviando los datos en formato json. A continuación, podemos ver un ejemplo de los datos obligatorios que debemos enviar:

string data = @"{
    ""api_key"": CLAVE_API,
    ""messages"": [
		{
		    ""from"": ""REMITENTE"",
		    ""to"": ""346XXXXXXXX"",
		    ""text"": ""Texto de nuestro mensaje""
	    }
	]
}";

Estos son los datos mínimos que debemos enviar, como vemos son muy sencillos, solo nuestra clave de la API que comentamos antes, y los datos propios del mensaje, que serían:

  1. El remitente que queremos que se muestre
  2. El numero al que queremos enviar el mensaje
  3. El propio texto del mensaje

En el array messages podemos indicar mas de un mensaje, hasta un máximo de 1000, de forma que podamos enviar varios mensajes con una sola petición. Esto dotará a nuestra aplicación de una gran velocidad a la hora de enviar SMS, algo muy importante si necesitamos enviar un gran volumen.

Otras funcionalidades de la API SMS

Hay otros parámetros que opcionalmente podemos indicar en la petición. Por ejemplo, durante la fase de pruebas podemos indicar el parámetro “fake” a 1, de forma que los mensajes no llegaran a enviarse realmente, aunque se simula todo el proceso, de forma que podemos probar a fondo nuestra aplicación sin incurrir en costes añadidos.

También podemos usar el parámetro “concat” para bloquear o permitir los mensajes concatenados, o usar “report_url” si queremos recibir las notificaciones del estado de nuestros envíos.

Cómo realizar la petición al servidor

Ahora vamos a ver la parte de código que nos falta, que sería como realizar la petición al servidor y recoger la respuesta.

WebHeaderCollection headers = new WebHeaderCollection();
headers.Add("accept", "application/json");
headers.Add("content-type", "application/json");
WebClient myClient = new WebClient
{
	Headers = headers
};
string result;
try
{
	result = myClient.UploadString("https://api.gateway360.com/api/3.0/sms/send", "POST", data);
}
catch (WebException ex)
{
    WebResponse response = ex.Response;
    Stream dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    result = reader.ReadToEnd();
}

Con este código realizaríamos la petición al servidor, y en la variable “result” tendríamos la respuesta enviada por SMS Up.

Esta respuesta será un json, con un campo “status”, indicando si se ha podido procesar bien la petición y un campo “result”, que es un array con una entrada por cada objeto enviado en messages, manteniendo en el mismo orden.

Cada entrada en “result”, es a su vez un objeto con su parámetro “status”, que indicaría si el mensaje concreto se ha podido procesar, un “sms_id” que sería el identificador asignado a ese mensaje y “custom” con el valor que se indicó al hacer la petición o en blanco si no se envió ninguno.

{
	"status":"ok",
	"result":[
		{
		    "status":"ok",
	        "sms_id":"a485ef96728ae374828e7e92e829e85",
	        "custom":""
	    }
	]
}

Este “sms_id” es el que recibiremos luego, si hemos indicado la “report_url”, y que nos servirá para identificar cada mensaje enviado y poder conocer su estado, es decir, si ha podido ser entregado o no al teléfono.

Con estas simples líneas de código nuestra aplicación c# adquiere nuevas posibilidades que podemos explotar de mil maneras para mejorar el servicio a nuestros clientes.

Para ampliar detalles sobre los campos o las posibles respuestas del servidor podéis visitar la documentación oficial API.

imagen hombres y mujeres mirando el móvil

Empieza a enviar SMS ahora

imagen etiqueta

El mejor precio

imagen monedas

Sin cuota de alta

imagen etiqueta

Fácil de usar