Page 1 of 1

Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 3:57 am
by Antonio Linares
Modesto Rocabado ha compartido con nosotros este código para enviar mensajes y ficheros usando WhatsApp.

Os agradecemos vuestras pruebas y feedback para afinarlo. Gracias!

Code: Select all  Expand view
FUNC SendToWhatsApp( cPhone, cMsg, aAttach )
LOCAL oShell, aFiles := {}, aOthers  := {}, lRet
 If (lRet := !Empty( cPhone ))
  If !Empty( aAttach )
   If( !HB_ISARRAY( aAttach ), aAttach := { aAttach }, )
   AEval( aAttach, {|cFile| If( HB_ISSTRING( cFile ) .AND. File( cFile ), AAdd( aFiles, cFile), AAdd( aOthers, cFile ) ) } )
  EndIf
  cMsg  := StrTran( cMsg, CRLF, "%0D%0A" )
  oShell := CreateObject( "WScript.Shell" )
  ShellExecute( 0, "Open", "whatsapp://send?phone="+cPhone+"&text="+cMsg)
  SysWait( 0.2 )
  If !Empty( aFiles )
   If FW_CopyToClipBoard( aFiles, 15 )
    SysWait( 2 )
    oShell:SendKeys( "^v" )
    SysWait( 1 )
   EndIf
  EndIf
  AEval( aOthers, <|u|
                      If FW_CopyToClipBoard( u, 2 ) .OR. FW_CopyToClipBoard( u )
                       SysWait( 1 )
                       oShell:SendKeys( "^v" )
                       SysWait( 1 )
                      EndIf
                      RETURN NIL
                  > )
   oShell:SendKeys("~")
 EndIf
RETURN lRet
 

Re: Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 4:42 am
by Armando
Maestro Antonio L.

Copie la función y la llamo con el siguiente código

Code: Select all  Expand view

   SendToWhatsApp( "7293320729", "Hola !",)

o con
   SendToWhatsApp( "+557293320729", "Hola !",)
 


En mi PC se abre WhatsApp pero no llega el mensaje aunque la función retorna .T. ¿qué le cambio?

Saludos

Re: Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 4:10 pm
by Joaquim Ferrer
Mi experiencia con el codigo facilitado

El numero de telefono al que enviar mensaje tiene que ser exactamente como aparece en la información de contacto, es decir, (+)codigo de país + telefono

Añadir SysWait( 1 ) antes del ultimo oShell:SendKeys("~")

Si WhatsApp está abierto en el escritorio, se envia el mensaje de forma automática

Si no está abierto, lanza el programa pero no envia nada, a veces se queda el texto del mensaje a enviar en espera de darle al botón de envío

Seria interesante poder comunicar en modo 'silencioso' sin abrir el programa

Existen varios whatsapp-CLI pero para Python y Go

Re: Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 4:52 pm
by paquitohm
IMHO,

Este tipo de soluciones me pareciera a mi que no se mantienen en el tiempo y además están sujetas a demasiadas casuísticas pre
Asi que como mejor alguna solución "estable" python, a través del API con python o un ejecutable python que haga el trabajo, después de recibir unos parámetros (*)

(*) Estaría bien que tuviéramos un .exe python con distintas funcionalidades al que se le pasa como parámetro el nombre de un json y devuelve otro con el mismo nombre y _respuesta de sufijo

Mis 2 eurocents

Re: Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 5:24 pm
by karinha
Armando, no te falta el código de área?

Code: Select all  Expand view

   SendToWhatsApp( "+55(11)7293320729", "Hola !",) // +55 -> Brazil, (11) -> São Paulo? Cual ciudad en Brazil?
 



Regards, saludos.

Re: Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 6:08 pm
by Antonio Linares
Usando python se puede hacer asi:

pip install pywhatkit

whatsapp.py
Code: Select all  Expand view
import pywhatkit as pw

# Número de teléfono (incluyendo código de país)
recipient = "+573123456789"

# Mensaje de texto
message = "Hola! Te envío este mensaje con Python."

# Lista de archivos adjuntos (opcionales)
attachments = [
    "/ruta/a/archivo1.pdf",
    "/ruta/a/archivo2.jpg"
]

# Enviar mensaje con o sin archivos adjuntos
if attachments:
    pw.send_whatsap_message(recipient, message, attachments=attachments)
else:
    pw.send_whatsap_message(recipient, message)

Para generar un EXE:
pyinstaller --onefile whatsapp.py

Re: Pruebas con WhatsApp

PostPosted: Wed Apr 17, 2024 10:38 pm
by Armando
Colegas:

Éxito obtenido, teniendo abierto wathsapp.

Saludos afectuosos

Re: Pruebas con WhatsApp, funciona con condiciones

PostPosted: Thu Apr 18, 2024 6:23 pm
by Willi Quintana
Estimados amigos....
El envío de mensajes por el WhatsApp funciona, siempre y cuando, al momento de enviar el mensaje desde FW, el usuario que envía, debe estar activo en el WHATSAPP de la pc....
Si estamos en revisando algún otro mensaje que o es el nuestro, el mensaje no llega...