Page 1 of 1
Pruebas con WhatsApp
Posted:
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
Posted:
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
Posted:
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
Posted:
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
Posted:
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
Posted:
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
Posted:
Wed Apr 17, 2024 10:38 pm
by Armando
Colegas:
Éxito obtenido, teniendo abierto wathsapp.
Saludos afectuosos
Re: Pruebas con WhatsApp, funciona con condiciones
Posted:
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...