Pruebas con WhatsApp

Pruebas con WhatsApp

Postby Antonio Linares » Wed Apr 17, 2024 3:57 am

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
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41318
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Pruebas con WhatsApp

Postby Armando » Wed Apr 17, 2024 4:42 am

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3063
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Pruebas con WhatsApp

Postby Joaquim Ferrer » Wed Apr 17, 2024 4:10 pm

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
Fivewinner desde 1.9, programador PHP y Javascript, PWA & HTML5 evangelista
User avatar
Joaquim Ferrer
 
Posts: 105
Joined: Sat Jan 14, 2012 3:46 pm
Location: Barcelona

Re: Pruebas con WhatsApp

Postby paquitohm » Wed Apr 17, 2024 4:52 pm

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
paquitohm
 
Posts: 110
Joined: Fri Jan 14, 2022 8:37 am

Re: Pruebas con WhatsApp

Postby karinha » Wed Apr 17, 2024 5:24 pm

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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7234
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Pruebas con WhatsApp

Postby Antonio Linares » Wed Apr 17, 2024 6:08 pm

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41318
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Pruebas con WhatsApp

Postby Armando » Wed Apr 17, 2024 10:38 pm

Colegas:

Éxito obtenido, teniendo abierto wathsapp.

Saludos afectuosos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3063
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Pruebas con WhatsApp, funciona con condiciones

Postby Willi Quintana » Thu Apr 18, 2024 6:23 pm

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...
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: sysctrl2 and 6 guests