Envío de SMS con Java y Twilio

March 23, 2021
Redactado por
Revisado por

Envío de SMS con Java y Twilio

¿Sabía que puede codificar una app Java en menos de 5 minutos para enviar un SMS mediante la API de Twilio? Probablemente más cerca de 2, una vez que haya instalado las herramientas. Necesitará:

La manera más sencilla de llamar a la API de Twilio es con la Twilio Java Helper Library. En esta sección, daré ejemplos usando la herramienta de creación Apache Maven, que descargará y administrará la dependencia y el empaque del proyecto. Puede ponerse al día con Maven en 5 minutos y otras herramientas, como Gradle también funcionan, si las prefiere.

Si prefiere ver que leer, eche un vistazo a mi video de demostración de Twilio de 2 minutos:

Creación de un proyecto nuevo

Asumiré que está comenzando desde cero con un directorio vacío, así que el primer paso es crear un proyecto nuevo.

Un proyecto nuevo de Maven

Cree un nuevo proyecto de Maven en IntelliJ IDEA como este:

Captura de pantalla del asistente IDE New Maven Project. Una configuración equivalente se describe como un fragmento de código en la prosa.

 Me gusta utilizar el asistente integrado de New Project de IDE, pero también es posible crear lo mismo desde la línea de comandos mediante la creación de una carpeta para el código fuente en el diseño de directorio estándar con mkdir -p src/main/java y la creación de un archivo llamado pom.xml con este contenido:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>java-send-sms</artifactId>
    <version>1.0-SNAPSHOT</version>

</project>

[este código en GitHub]

Antes de llegar a la codificación, debemos decirle a Maven que utilice Java 8 y que descargue la Twilio Helper Library.  Agregue lo siguiente a pom.xml como lo último antes de </Project>:

<properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>com.twilio.sdk</groupId>
        <artifactId>twilio</artifactId>
        <version>8.10.0</version>
    </dependency>
</dependencies>

Siempre recomendamos utilizar la última versión de Twilio Helper Library. Al momento de escribir esto, es 8.10.0, pero siempre puede comprobar la versión más reciente en mvnreporistory.com.

Escribir el código

Maven utiliza src/main/java como el lugar para colocar el código fuente Java. Adentro, cree un paquete llamado com.example y una clase ahí llamada TwilioSendSms. La estructura de su directorio debe ser:

├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── example
                    └── TwilioSendSms.java

Comience la clase TwilioSendSms con un método main:

package com.example;

public class TwilioSendSms {

    public static void main(String[] args) {
        // code will go in here
    }
}

[este código en GitHub]

Adonde dice // code will go in here (// aquí irá el código), usted debe hacer dos cosas:

  • Autenticar el cliente de Twilio
  • Llamar a la API para enviar un SMS

Estos tomarán una línea de código cada uno.

Autenticar el cliente de Twilio

Necesitará su ACCOUNT_SID y AUTH_TOKEN de su consola Twilio. Para ayudar a mantener esto en forma secreta, siempre recomiendo leerlos de variables de entorno en lugar de tener que codificarlos con dificultad.  Uso Plugin EnvFile para IntelliJ IDEA y hay alternativas para otros IDE o puede configurarlos en su sistema operativo. Una vez que se establecen en el entorno, agregue este código en el cuerpo de la función main():

Twilio.init(
    System.getenv("TWILIO_ACCOUNT_SID"),
    System.getenv("TWILIO_AUTH_TOKEN"));

Si no ha establecido las variables de entorno, este código lanzará

com.twilio.exception.AuthenticationException: Username can not be null

Envíe su primer SMS

Por último, ¡el código para enviar un mensaje de texto!  Agregue esto al método main, debajo del código init que acaba de agregar:

Message.creator(
    new PhoneNumber("<TO number - ie your cellphone>"),
    new PhoneNumber("<FROM number - ie your Twilio number"),
    "Hello from Twilio 📞")
  .create();

[este código (con importaciones) en GitHub]

Los números de teléfono que pasa a los constructores de PhoneNumber deben ser números de teléfono reales, en formato E.164. Una vez que los haya agregado, ejecute el código y ¡listo!

Captura de pantalla del SMS de la app de mi teléfono&#x27;s que muestra un mensaje que dice &#x27;Saludos de Twilio&#x27;

🎉🎉🎉 Felicitaciones 🎉🎉🎉

Conclusión

Ahora ya sabe cómo enviar un SMS mediante la API de Twilio, lo siguiente podría ser recibir y responder SMS desde Java.

Es hora de poner a trabajar su imaginación. Puedes enviar recordatorios diariospronósticos meteorológicosalertas de espacios de estacionamiento o cualquier otro elemento que pueda imaginar.

Este artículo fue traducido del original "Sending SMS with Java with Twilio". Mientras estamos en nuestros procesos de traducción, nos encantaría recibir sus comentarios en help@twilio.com - las contribuciones valiosas pueden generar regalos de Twilio.