SMS Java. Mandar SMS con Java

Ejemplos de programación para integrar el API en Java.

Altiria ofrece a los integradores facilidades para enviar SMS con Java a través de un gateway o pasarela SMS API Java.

Para mandar SMS con Java, es necesario en primer lugar leer la documentación técnica de envío de SMS. El protocolo de comunicaciones más sencillo para implementar el envío de SMS con tu página Java es el protocolo HTTP.

Descarga la documentación y código fuente de ejemplo de nuestra API SMS y crea una cuenta de prueba gratis. Recibirás las credenciales para utilizar el código de ejemplo en Java.

Aprovecha los ejemplos de código que te proporcionamos:

Envío de SMS con Java y Maven

La forma más sencilla de integrar el envío de SMS es utilizando Maven y la librería AltiriaClient.

Es necesario añadir el objeto repositories como hijo del elemento project y el objeto dependency como hijo del elemento dependencies.

<repositories>
	<repository>
	    <id>jitpack.io</id>
	    <url>https://jitpack.io</url>
	</repository>
</repositories>

<dependency>
    <groupId>com.github.altiria</groupId>
    <artifactId>sms-java-client</artifactId>
    <version>1.0</version>
</dependency>

Nota: La codificación del proyecto por defecto es ISO-8859-1. Según el proyecto que integre esta librería puede ser necesario ajustar el archivo pom.xml.

Con la librería ya integrada en el proyecto se puede utilizar la clase AltiriaClient para enviar SMS:

try {
   //Personaliza las credenciales de acceso
   AltiriaClient client = new AltiriaClient("user@mydomain.com", "mypassword");
   client.sendSms("346XXXXXXXX", "Mensaje de prueba");
   System.out.println("¡Mensaje enviado!");
} catch (AltiriaGwException ae) {
   System.out.println("Mensaje no aceptado: "+ae.getMessage());
   System.out.println("Código de error: "+ae.getStatus());
} catch (Exception e) {
   System.out.println("Error inesperado: "+e.getMessage());
}

Sustituye System.out.println por la librería de log que estés utilizando y ajusta el tratamiento de las excepciones para que se ajuste a la funcionalidad deseada de tu proyecto.

Enviar SMS con Java y Apache HttpClient

El siguiente código actualizado es un ejemplo ilustrativo de cómo enviar SMS con Java utilizando HttpClient 4.5.1. El código y las librerías utilizadas, más otros ejemplos en otros lenguajes de programación, se pueden descargar aquí. Si quieres conocer todos los detalles, consulta la especificación técnica SMS API. Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.

package mypackage;

// Copyright (c) 2018, Altiria TIC SL
// All rights reserved.
// El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria
// Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar
// más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services)
// https://www.altiria.com/api-envio-sms/

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class HttpJavaAltiria {
public static void main(String[] args) {

//Se fija el tiempo máximo de espera para conectar con el servidor (5000)
//Se fija el tiempo máximo de espera de la respuesta del servidor (60000)
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(60000)
.build();

//Se inicia el objeto HTTP
HttpClientBuilder builder = HttpClientBuilder.create();
builder.setDefaultRequestConfig(config);
CloseableHttpClient httpClient = builder.build();

//Se fija la URL sobre la que enviar la petición POST
HttpPost post = new HttpPost("http://www.altiria.net/api/http");

//Se crea la lista de parámetros a enviar en la petición POST
List parametersList = new ArrayList ();
//YY y ZZ se corresponden con los valores de identificación del
//usuario en el sistema.
parametersList.add(new BasicNameValuePair("cmd", "sendsms"));
parametersList.add(new BasicNameValuePair("login", "YY"));
parametersList.add(new BasicNameValuePair("passwd", "ZZ"));
parametersList.add(new BasicNameValuePair("dest", "346xxxxxxxx"));
parametersList.add(new BasicNameValuePair("dest", "346yyyyyyyy"));
parametersList.add(new BasicNameValuePair("msg", "Mesaje de prueba"));
//No es posible utilizar el remitente en América pero sí en España y Europa
//Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria
//parametersList.add(new BasicNameValuePair("senderId", "remitente"));

try {
//Se fija la codificacion de caracteres de la peticion POST
post.setEntity(new UrlEncodedFormEntity(parametersList,"UTF-8"));
}
catch(UnsupportedEncodingException uex) {
System.out.println("ERROR: codificación de caracteres no soportada");
}

CloseableHttpResponse response = null;

try {
System.out.println("Enviando petición");
//Se envía la petición
response = httpClient.execute(post);
//Se consigue la respuesta
String resp = EntityUtils.toString(response.getEntity());

//Error en la respuesta del servidor
if (response.getStatusLine().getStatusCode()!=200){
System.out.println("ERROR: Código de error HTTP: " + response.getStatusLine().getStatusCode());
System.out.println("Compruebe que ha configurado correctamente la direccion/url ");
System.out.println("suministrada por Altiria");
return;
}else {
//Se procesa la respuesta capturada en la cadena 'response'
if (resp.startsWith("ERROR")){
System.out.println(resp);
System.out.println("Código de error de Altiria. Compruebe las especificaciones");
} else
System.out.println(resp);
}
}
catch (Exception e) {
System.out.println("Excepción");
e.printStackTrace();
return;
}
finally {
//En cualquier caso se cierra la conexión
post.releaseConnection();
if(response!=null) {
try {
response.close();
}
catch(IOException ioe) {
System.out.println("ERROR cerrando recursos");
}
}
}
}
}

Para realizar el envío de SMS con Java utilizando el protocolo HTTP, en primer lugar es necesario seleccionar un cliente HTTP que facilite la utilización de este protocolo. Es muy importante configurar adecuadamente los timeouts y el charset de la petición HTTP para asegurar la calidad del código Java implementado. También es imprescindible realizar un procesado de la respuesta, para conocer si el envío de SMS se ha realizado correctamente o no. Java es un lenguaje de programación muy utilizado en software de empresas. Integra el envío de SMS en tu software Java para añadir la posibilidad de enviar un SMS a los usuarios registrados en una base de datos, por ejemplo, de forma que se integre de manera natural con las funcionalidades propias de tu software: enviar códigos de activación, notificaciones o alertas a tus clientes, informaciones de servicio.

Paga solo por lo que necesitas

Sin cuotas de alta

Sin cuotas de mantenimiento

SMS API

Descarga

Guía para la integración de SMS API

Lista de tareas detallada, checklist, para asegurarte que no se olvida nada importante en la integración de API SMS. Independiente del lenguaje de programación elegido.

Protocolos de comunicación soportados

La API SMS se puede utilizar con los siguientes protocolos de comunicación:

Países a los que damos servicio

bandera españa

España

Bandera Mexico

México

Bandera Colombia

Colombia

Bandera Perú

Perú

Chile

Chile

+125 países

Estas empresas YA confían en Altiria

Logo Occitane en Provence
Logo Europ Assistance
Logo Balearia
Logo Sanitas
Logo Cruz Roja
Logo Rafa Nadal Academy
Logo Médicos Sin Fronteras
Logo Viajes el Corte Inglés
Logo Loterias del Estado

Características

Descubre las funcionalidades avanzadas de Altiria para el envío de SMS

Confirmación entrega SMS

Confirmación de entrega

Remitente SMS

Remitente personalizado

Estadísticas

Estadísticas

Programación envío SMS

Programación de envíos

SMS concatenados

SMS largos, más de 160 caracteres

Landing SMS

Editor de landing

SMS Unicode

Unicode. Acentos y otros alfabetos

Eliminar duplicados

Elimina teléfonos duplicados

SMS personalizados

Textos personalizados

Plantillas SMS

Plantillas de mensajes

Recordatorio citas SMS

Recordatorio de citas

Pruébalo gratis