Cómo enviar SMS con Java de forma automática

Integrar tu aplicación con la API de SMS Up te permitirá comunicarte vía SMS de una forma sencilla y totalmente automatizada. Y, por si fuera poco, a uno de los precios más bajos del mercado.

Enviar mensajes de texto con Java

Antes de nada, necesitas tu clave de API, la cual encontrarás en la sección API del menú principal de la plataforma. Si aún no tienes cuenta, regístrate con nosotros.

Ahora que tenemos la clave de API, solo tenemos que realizar una petición POST a la API a la URL https://api.gateway360.com/api/3.0/sms/send, enviando los datos en formato json. 

Puedes seguir este ejemplo:

String jsonInputString = "{" +
	"\"api_key\":\"API_KEY\"," +
	"\"messages\":[" +
		"{" +
			"\"from\":\"REMITENTE\"," +
     	      		"\"to\":\"346XXXXXXXX\"," +
           		"\"text\":\"Texto del mensaje a enviar\"" +
		"}" +
 	"]" +
"}";

Tan solo tienes que sustituir los valores del ejemplo por los tuyos, siendo:

  • API_KEY: tu clave de API.
  • from: el remitente que se mostrará en el SMS
  • to: el destinatario del SMS
  • text: el texto del SMS

Aunque en este ejemplo sólo enviamos un mensaje, se pueden añadir hasta 1000 SMS en una sola petición. De este modo, los envíos se realizan a una velocidad mucho mayor que si enviamos solo uno por petición:

"\"messages\":[" +
		"{" +
			"\"from\":\"REMITENTE\"," +
     	      		"\"to\":\"346XXXXXXXX\"," +
           		"\"text\":\"Texto del mensaje a enviar\"" +
		"}," +
		"{" +
			"\"from\":\"REMITENTE\"," +
     	      		"\"to\":\"346XXXXXXXX\"," +
           		"\"text\":\"Texto del mensaje a enviar 2\"" +
		"}," +
		.
		.
		.
"]" +

Qué más puedes hacer con nuestra API SMS

Además de los parámetros obligatorios que hemos visto en el ejemplo de la petición, podemos usar otros parámetros que ofrecen una gran funcionalidad. Por ejemplo, podemos usar el parámetro “fake” con valor 1, durante la fase de pruebas para simular el envío de mensajes, pero sin que éstos se envíen realmente y ni nos supongan un coste.

Otro parámetro importante es “report_url”, donde indicamos la URL en la que  queremos recibir las notificaciones relativas a nuestros envíos. 

Puedes consultar la lista completa de parámetros en la documentación de la API.

Cómo realizar una petición al servidor

A continuación, puedes ver un ejemplo completo para realizar una petición a nuestro servidor y cómo recoger la respuesta:

URL url = new URL ("https://api.gateway360.com/api/3.0/sms/send");
            
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; utf-8");
con.setRequestProperty("Accept", "application/json");
con.setDoOutput(true);
            
String jsonInputString = "{" +
	"\"api_key\":\"API_KEY\"," +
	"\"messages\":[" +
		"{" +
			"\"from\":\"REMITENTE\"," +
     	      		"\"to\":\"346XXXXXXXX\"," +
           		"\"text\":\"Texto del mensaje a enviar\"" +
		"}" +
 	"]" +
"}";
System.out.println("2\n");
OutputStream os = con.getOutputStream();
System.out.println("3\n");
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);           
            
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8")); 
StringBuilder response = new StringBuilder();
String responseLine = null;
while ((responseLine = br.readLine()) != null) {
	response.append(responseLine.trim());
}

De este modo, habríamos realizado la llamada al servidor y tendríamos la respuesta en la variable “response”, formada por un json con un campo “status” y uno de “result”. Esta respuesta tendrá el siguiente formato:

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

El campo “status” indica si se ha podido procesar la petición. El campo result “result” es un array con una entrada por cada mensaje enviado en “messages”, en el mismo orden en el que se enviaron.

Cada una de estas entradas nos indica información sobre el estado de cada uno de los mensajes:

  • “status”: indica si hemos podido procesar el mensaje.
  • “sms_id”: identificador único asignado al mensaje por nuestro sistema.
  • “custom”: valor que se indicó al hacer la petición o en blanco si no se envió ninguno.

Para más información sobre los campos o las posibles respuestas del servidor podéis visitar la documentación de nuestra API.

Para empezar a enviar SMS desde tu aplicación Java, regístrate en nuestra plataforma y disfruta de unos SMS de bienvenida gratuitos.

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