Enviar Mensaje Masivo con WhatsApp en Java
En este tutorial vamos a crear nuestro propio programa para enviar mensaje masivo con WhatsApp en Java, de tal surte que podremos manipular como enviar los mensajes o incluso conectarlo a nuestro sistema.
Crear Proyecto en Netbeans
Abrimos NetBeans y creamos un nuevo proyecto de Java

Colocamos un nombre a nuestro proyecto en este caso WA.

Creamos un nuevo Jframe haciendo click en nuestro proyecto -> New -> JFrame Form

Dejamos este nombre y damos click en Finish

Importamos las librerías
Hacemos click en Source

Escribimos WebDriver driver; y cargamos las dependencias haciendo click en las sugerencias

Seleccionamos selenium y damos click en Add

Damos click en importar dependencias

Seleccionamos desing, desplegamos la paleta y arrastramos un boton y le cambiamos el texto

Agregamos este código:
String SEPARATOR = ",";
String QUOTE = "\"";
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//Obtenemos la ubicacion de nuestro programa
String localPath=new File(".").getCanonicalPath();
//Declaramos el buffer que almacenna cada linea del excel
BufferedReader br = null;
//Leemos el chromedriver que esta en la misma direccion del programa
System.setProperty("webdriver.chrome.driver", localPath+"\\chromedriver.exe");
//Inicializamos ls opciones de chrome
ChromeOptions optionsGoo = new ChromeOptions();
//Permitimos la propiedad no-sandbox para evitar problemas en linux
optionsGoo.addArguments("--no-sandbox");
//Deshabilitamos las notificaciones
optionsGoo.addArguments("--disable-notifications");
//Guardamos la sesion en la carpeta chromeWA
optionsGoo.addArguments("--user-data-dir="+localPath+"\\chromeWA");
//Instanciamos un nuevo chromedriver
driver = new ChromeDriver(optionsGoo);
try {
//Leemos los contactos del archivo csv
br = new BufferedReader(new FileReader(localPath+"\\Contactos.csv"));
//Leemos una linea
String line = br.readLine();
//Si la linea no esta vacia seguimos leyendo
while (null != line) {
//Determinamos el separador de campos que es la coma
String[] fields = line.split(SEPARATOR);
//Eliminamos el texto sobrante al final
fields = removeTrailingQuotes(fields);
//Obtenemos el nombre del contacto
String contacto=fields[0];
//Obtenemos el numero del contacto
String numero=fields[1];
//Obtenemos el mensaje del contacto
String mensaje=fields[2];
try{
//Abrimos whatsapp web con el numero de telefono a enviar
driver.get("https://web.whatsapp.com/send/?phone="+numero+"&text&type=phone_number&app_absent=0");
//Declaramos el tiempo de espera
WebDriverWait wait = new WebDriverWait(driver, 5000);
//Esperamos que cargue
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id=\"main\"]/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]/p")));
//Escribimos el mensaje
driver.findElement(By.xpath("//*[@id=\"main\"]/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]/p")).sendKeys(mensaje);
//Esperamos 1 segundo
pausa(1000);
//Precionamos enter
driver.findElement(By.xpath("//*[@id=\"main\"]/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]/p")).sendKeys(Keys.ENTER);
pausa(1000);
//Leemos una nueva linea
line = br.readLine();
}catch(Exception e){
JOptionPane.showMessageDialog(null, e.toString());
}
}
} catch (Exception e) {
} finally {
if (null != br) {
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
//Quitamos las lineas finales
private String[] removeTrailingQuotes(String[] fields) {
String result[] = new String[fields.length];
for (int i = 0; i < result.length; i++) {
result[i] = fields[i].replaceAll("^" + QUOTE, "").replaceAll(QUOTE + "$", "");
}
return result;
}
//Funcion que espera un tiempo
public void pausa(long sleeptime) {
try {
Thread.sleep(sleeptime);
} catch (InterruptedException ex) {
}
}
Importamos todas las librerías

Buscamos las dependencias de ChromeOptions

Seleccionamos selenium y damos click en add

Importamos las librerias de chromeOptions

Descargamos las dependencias
En chrome damos click en los 3 puntos, seleccionamos ayuda, informacion de google y aparecera la vercion de chrome

Vamos a https://chromedriver.chromium.org/downloads y descargamos la version de chrome que tenemos instalado

Descargamos Contactos.csv y creamos la carpeta chromeWA de tal suerte que nuestros archivos quedaran así:

Enviar Mensaje Masivo con WhatsApp en Java
Click en play y cuando corra el programa hacemos click en enviar mensajes

Escaneamos el codigo qr y esperamos a que se envien os mensajes via WA


Editamos el archivo Contactos.csv para agregar y editar los contactos

Tutorial anterior: https://www.programadornovato.com/enviar-mensaje-masivo-con-whatsapp/
🎦 [CURSO] C##️⃣: https://www.youtube.com/watch?v=NKPMGY6NCko&list=PLCTD_CpMeEKQSOU8Vf9VHXrZa2rc8X0X5&index=1&t=3s&ab_channel=programadornovatoprogramadornovato
🎦 [CURSO] C CON FORMULARIOS##️⃣: https://www.youtube.com/watch?v=l0_U4oyOuns&list=PLCTD_CpMeEKTBih1VgeunCjc83ZQ6UBMI&index=1&ab_channel=programadornovatoprogramadornovato
🎦 [CURSO] C++ DE 0 A HEROE 🦸: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc&ab_channel=programadornovato
🎦 [Curso] Java Netbeans GUI Completo☕: https://www.youtube.com/watch?v=18UA7X2ss8g&list=PLCTD_CpMeEKThfXo8D-RXOGu5FarO7_qv&ab_channel=programadornovato
📎 Enviar mensajes de Whatsapp automaticamente : https://www.programadornovato.com/category/enviar-mensajes-de-whatsapp-automaticamente-twilio-tutorial-en-espanol-2022/