
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/