FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema al enviar PDF's vía WhatsApp Web
Hola comunidad, espero todos estén teniendo un excelente día
Para poner en contexto, me solicitaron que desarrollé un programa que guarde reportes de notas de estudiantes hechos en Excel en PDF y después estos sean enviados vía WhatsApp a los respectivos padres de los mismos. En teoría muy sencillo ya que todo estaba ordenado por códigos y números telefónicos en hojas de Excel. Guardar los reportes en PDF fue muy sencillo, una simple macro en VBA. El problema comenzó para enviar los PDF's por WhatsApp Web. Como debía enviar un mensaje a un número x desde el vamos usé el clic para chatear para el texto, pero tenía que ver la forma de enviar los archivos. Opte por hacerlo apoyado por Selenium trabajando directamente en VBA desde Excel. En principio bien, me apoye del siguiente vídeo Automate Image PDF Videos Upload Via WhatsApp - YOUTUBE Pero después empezaron los problemas. De por sí no era eficiente con los tiempos de espera entre evento, es decir no se detectaba cuando ya había cargado la página o cuando ya el PDF se había terminado de subir para poder cambiar a otro número. También había problemas con la actualización de versiones de Chrome, Chromiun y Selenium. Por último lo más evidente cada vez que se quería trabajar en otra PC se debían instalar todos los componentes. La verdad un caos! Así que me plantee hacer el mismo programa pero con Delphi, teniendo la ventaja del navegador incorporado. Bastaría con crear los PDF's desde Excel. Después seleccionar las carpetas donde están guardados e indicar la lista de códigos y números de WhatsApp. Al menos eso pensé... Bueno de por sí el navegador de Delphi no soporta WhatsApp Web, así que procedí a instalar la versión más reciente que encontré del Componente Chromiun para Delphi. Aquí todo bien, después era solo cargarla la URL y ejecutar JS para que se dé Clic en los respectivos botones de envío. Tuve problemas para indicar el Path del archivo tal como se hacía en Selenium Código:
driver.FindElementByXPath("//input[@accept='image/*,video/mp4,video/3gpp,video/quicktime']").SendKeys (filepath)
Y efectivamente ya enviaba el PDF, el problema es en las acciones anteriores. Ya que en WhatsApp Web para que cargue el cuadro de Dialogo para Insertar el Archivo primero se debe dar Clic en el Botón "Adjuntar" Y después Clic en "Documento" Aquí como mencioné ejecuto JS para hacer el manejo de elementos. Claro, le paso el JS minificado.
Y bueno aquí es donde empieza el problema, ya que cuando empieza la secuencia en el primer recorrido ejecuta el primer botón "Adjuntar" pero no da clic al segundo botón de "Documento" y por ende no carga el cuadro de dialogo y no se envía el documento. Cuando empieza el segundo recorrido, probablemente como ya quedó pulsado el primer botón ahora ya pulsa el segundo botón y se envía el PDF. Pero claro poniendo esto en bucle lo que ocasiona es que envía dejando un Reporte. Bueno esto probandolo sin cambiar de URL's porque si fuera el caso se reiniciaría el sitio y nunca enviaría ningún PDF. En pocas palabras, no llega a enviar el PDF, por más que ya he probado los códigos JS desde la consola en Chrome y aquí sí ejecuta ambos botones correctamente. El código JS que estoy usando para dar Clic en los botones es Código:
var eventFire = (MyElement, ElementType) => { var MyEvent = document.createEvent("MouseEvents"); MyEvent.initMouseEvent (ElementType, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); MyElement.dispatchEvent(MyEvent); }; eventFire(document.querySelector('div[title="Adjuntar"]'), 'click'); Código:
var eventFire = (MyElement, ElementType) => { var MyEvent = document.createEvent("MouseEvents"); MyEvent.initMouseEvent (ElementType, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); MyElement.dispatchEvent(MyEvent); }; eventFire(document.querySelector('button[aria-label="Documento"]'), 'click'); Muchas Gracias |
#2
|
||||
|
||||
Una pregunta.
¿Estás trabajando con WhatsApp Business API? (diseñado específicamente para lo que necesitas)
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
WPP4Delphi
Hola!
Podés usar, en cambio, WPP4Delphi (https://github.com/wppconnect-team/WPP4Delphi), permite incluso leer mensajes desde una aplicación Delphi de escritorio. Recomiendo su uso. Saludos |
#4
|
|||
|
|||
Respuesta a lucho6007
Hola muchas gracias por tu respuesta, estuve revisando y me parece un proyecto bastante interesante.
Instale los componentes y cuando fui a ejecutar la Demo me salieron estás advertencias: Erro HTTP GET fis.abr) Error connecting with SSL. error:1407742E:SSL routines:SSL23_GET_SERVER HELLO:t1svl alert protocol version Y por último está: Console ainda nao obteve os comandos de INJECT JS Y bueno básicamente cuando intento usar la demo me salen nuevamente esas advertencias y no consigo iniciarlas, alguna idea de cómo solucionar? |
#5
|
|||
|
|||
Hola!
Ese proyecto está basado en TInject (https://github.com/mikelustosa/Projeto-TInject), quizá buscando en ese proyecto lo hagas funcionar. Saludos |
#6
|
|||
|
|||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lograr efecto del ToolBar de whatsApp con Firemonkey | juank1971 | FireMonkey | 2 | 30-06-2021 16:11:43 |
whatsapp y Delphi 7 | Carmelo Cash | OOP | 2 | 31-10-2018 22:16:02 |
Ventana estilo WhatsApp | jars | Varios | 4 | 13-10-2014 20:34:42 |
Hacer un whatsapp en delphi | JULIPO | Internet | 11 | 14-08-2013 09:09:26 |
Enviar mensajes Whatsapp por c++ builder o delphi | vivamotos | C++ Builder | 8 | 10-10-2011 22:03:20 |
|