Tutorial Raspberry Pi - WhatsApp en Python con Yowsup

Tutorial Raspberry Pi - WhatsApp en Python con Yowsup

yowsup¡Hola!... Llevo bastante tiempo experimentando con la librería Yousup, la que permite interactuar con el servidor de WhatsApp, para que podamos recibir y enviar mensaje desde nuestra Raspberry Pi, incluso esto se puede desde algunas distribuciones de Linux. Les enseñaré lo básico y, todo lo de más depende de su creatividad y dedicación.

Instalemos Yowsup

Como siempre, debemos actualizar nuestro sistema al más reciente, pero aparte necesitamos de Python Dateutil así que ejecutaremos esto en el terminal:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-dateutil

Tendremos que descargar todo el repositorio que se encuentra en Github https://github.com/tgalal/yowsup ya sea manualmente copiarlo a nuestra Raspberry Pi o bien ejecutar en el terminal:

git clone git://github.com/tgalal/yowsup.git

 Registro de Número

Como sabemos, para el uso de WhatsApp se requiere registrar un número. Desafortunadamente sólo se puede usar un número por dispositivo, así que debemos conseguir un número para registrar nuestra Raspberry Pi. Puede ser ficticio pero recuerden que tendremos que validarlo por un mensaje o llamada.

Una vez ya conseguido el número que queremos usar debemos acceder desde el terminal a la siguiente ruta:
cd /home/pi/yowsup/src

Bueno en mi caso, yo descargué el repositorio directamente a "/home/pi". En su caso tendrán que poner la ruta donde copiaron su repositorio.

Ahora se necesita de editar el config.example para colocar nuestro número. Podemos editarlo con nano ejecutando en la terminal;

nano config.example
Al principio del archivo explica dónde irán cada uno de nuestros datos. Quedaría de la siguiente forma:
cc= 52
phone= 521**********
id=
password=

 cc es el prefijo telefónico de tu país. En mi caso México, por eso es 52. En phone prefijo + teléfono. En caso de México queda 521+tu número. Presionamos Ctrl+X para salir, después guardamos con el mismo nombre con "s" o "y" y enter.

Para registrar nuestro número tendremos que ejecutar en la terminal igualmente:
python yowsup-cli -c config.example --requestcode sms #Verificar por sms
python yowsup-cli -c config.example --requestcode voice #verificar por llamada
Si todo sale bien nos regresara algo como esto...

whats1

 Nota:  si aparece un error diciendo que ha fallado por tener una versión vieja, tendremos que meternos a este archivo src/Yowsup/Common/constants.py para editar esto.

Tendremos que esperar a que nos llegue un código ???-??? (3 dígitos+ - +3 dígitos). Una vez llegue, procedemos a solicitar nuestra password, ejecutando lo siguiente:

python yowsup-cli -c config.example --register ???-???

whats2

Ahora copiamos el pw a nuestro archivo config.example en el apartado de password, y listo. Está registrado nuestro número en la Raspberry Pi.

Utilizar Yowsup-cli

Yowsup-cli, es un pequeño programa en Python que nos brinda la facilidad de mandar y recibir mensaje en nuestra terminal y es bastante sencillo de utilizar.

Mandar un mensaje a un número: Para mandar mensaje sólo necesitamos seguir la siguiente sintaxis y ejecutarla en la terminal.
python yowsup-cli -c config.example -w -s 521numero "Mensaje"
whats3

Utilizamos el -w para esperar a que el mensaje sea mandado antes de cerrar la aplicación, -s indica que queremos mandar un mensaje.

Podemos ver toda la funcionalidad de Yowsup-Cli .

Recepción de Mensajes:

Para ver los mensajes que nos envían podemos ejecutar el siguiente comando en la consola:

python yowsup-cli -c config.example -k -a -l

Con el parámetro -k indicamos que queremos mantener la conexión con el servidor. El parámetro -a indica que cada vez que nos llegue un mensaje se marcará como leído para que el servidor no lo vuelva a enviar.

Chat Interactivo Podemos tener una charla interactiva, solo tendríamos que ejecutar en consola y empezar nuestra charla.
python yowsup-cli -c config.example -k -a -i 521**********

Con esto podemos ejecutar desde Python cualquiera de estos comandos para que nuestra aplicación interactúe con WhatsApp. Sin embargo no sería algo muy recomendable, ya que estaríamos ejecutando un programa dentro de otro programa. A continuación les mostraré una manera de utilizarlo directamente en Python importando las librerías de Yowsup-Cli.

Envio de Mensajes con Python 

Antes que nada debido a que importamos las librerías de Yowsup-cli, nuestro programa debe ubicarse en  donde están estas librerías  yowsup/src/  , una vez creado nuestro archivo en esta ubicación programamos el siguiente código.
#!usr/bin/env
'''
    Programa creado para mostrar la utilizacion de las claces de yuwsup-cli
    en un programa de python. Este programa sera capas de mandar un mensaje a
    uno o varios destinatarios.

    Programado por:
        Luis Enrique Villa Trejo.   [ V i L l A k ]
'''
import base64
from Examples.EchoClient import WhatsappEchoClient             #Importa la Clace WhatsappEchoClient, dedicada a envio de mensajes.
#................Clave de Acceso a WhatsApp............................
password = "***********************"                      #Password dada al registrar el numero.
password = base64.b64decode(bytes(password.encode('utf-8')))   #Codificacion de Password para envio a los servidores de whatsApp.
username = '521##########'                                     #Numero de telefono para el inicio de secion.
keepAlive= False                                               #Conexion persistente con el servidor.
#......................................................................
whats = WhatsappEchoClient("TelefonoDestino", "Aqui tu mensaje", keepAlive)     #Inicia el cliente para el envio de mensajes por WhatsApp.
whats.login(username, password)                                                 #Autentifica el dispositivo con el cliente de WhatsApp.

Bueno este es un ejemplo sencillo pero seguro servirá para muchas aplicaciones, así que depende de la creatividad y dedicación que le dediquemos podríamos crear algo como Proyecto R.A.S.H.

¡Saludos desde México y suerte en sus proyectos!

Deja un comentario


65 comentarios


David Martinez · Hace 11 meses

hola, me asusta un poco la salida de price expiration, este servicio tiene algún coste??

vortexxD · Hace 1 año

Hola, una pregunta. ¿Se puede hacer esto con arduino?

José Ignacio Albaladejo · Hace 1 año

Parece que han actualizado la versión de yowsup y los comandos ya no son validos. Ver https://github.com/tgalal/yowsup/wiki/yowsup-cli-2.0

Kevin · Hace 1 año

Hola me puedes ayudar? tengo un proyecto tipo y es una alarma con 2 sensores uno de impacto o sismos y otro de humo los dos sensores son caseros y envian un pulso a la raspi cada ve que detectan humo o impacto como puedo hacer para que la raspberry me envie un mensaje al whatsapp informandome que una de estas dos cosas pasa, en otras palabras quiero que cuando la rapberry reciba un pulso en un pin GPIO antes configurado me envie un whatsapp ayudame porfaaa :)

felipe · Hace 2 años

hola amigo como podría uno acceder a los mensajes que le son enviadoss la raspberry? para convertirlos a string y ya posteriomente usarlos como si fueras comandos? muchas gracias a migo que buen post

Benzi · Hace 2 años

hola, no me aparece el directorio src ayudaaa gracias

Torras · Hace 2 años

Villak, antetodo, muy buen tutorial este y el de como utilizar telegram desde python (este ultimo creo que es el único que hay en castellano). Como parece que con la versión 2.0 hay unos pocos de cambios decidí seguir los pasos tal como indican el la pagina oficial de yowsup en github pero ni aun así consigo siquiera registrar el teléfono (es un numero antiguo y que no voy a usar para otra cosa). Si alguien sabe que pasos dar que no sean como explican en github se lo agradecería bastante. Manejar telegram desde python con la libreria pexpect hace bastante engorroso el código y poco preciso mientras que he visto que con yowsup al estar ya en python simplifica todo bastante. Un saludo.

piperrak · Hace 2 años

Villak, actualiza el manual, ya existe la version 2 de yowsup!

startxlabs test user · Hace 2 años

hello, I am unable to find src folder in yowsup directory

Alejandro moreno · Hace 2 años

Hola ya logre llegar hasta el registro. luego del registro dice que entre a yowsup-cli demos -c config.example -y aparece Type /help for available commands [offline]: siguiendo la explicación dice que le de /L para registrar y poder quedar en línea, luego que le doy este comando me aparece un listado de comandos ejecutándose hasta que al final aparece lo siguiente y se sale. no he logrado aun enviar mi primer mensaje Me pueden ayudar por favor File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.0.53-py2.7.egg/yowsup/layers/protocol_notifications/layer.py", line 24, in recvNotification self.raiseErrorForNode(node) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.0.53-py2.7.egg/yowsup/layers/__init__.py", line 118, in raiseErrorForNode raise ValueError("Unimplemented notification type %s " % node) ValueError: Unimplemented notification type pi@rb1 ~/yowsup $

Alejandro moreno · Hace 2 años

Ayuda no he podido poner a funcionar mi nueva raspberry pi b+, tenia antes la otra raspberry y funciono bien pero ahora que quería retomar esta aplicación ya no funcionan. segui todos los pasos de dice Ruben pero al momento de darle yowsup-cli registration --help me genera un error Traceback (most recent call last): File "/usr/local/bin/yowsup-cli", line 4, in import pkg_resources File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: readline esto es la raspberry pi b+ ,quien me ayuda por favor

Rafael Gomes · Hace 1 año

Boa Tarde! Precisei instalar a versáo 2.0 Pillow, para resolver o problema abaixo. #pip install --user Pillow==2.0.0 root@QDRSRV021:/# yowsup-cli demos -s 5511xxxxxxxx "Mensagem de teste." -c /etc/zabbix/whatsapp.conf Traceback (most recent call last): File "/usr/local/bin/yowsup-cli", line 4, in import pkg_resources File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: pillow root@QDRSRV021:/#

Mauricio Martinez · Hace 2 años

tienes que tener isntaladas estas cosas primero, ya que me da la impresión que te faltan sudo apt-get install python-dev sudo apt-get install ncurses-dev cuéntanos como te fue

Alejandro moreno · Hace 2 años

Hola ya logre llegar hasta el registro. luego del registro dice que entre a yowsup-cli demos -c config.example -y aparece Type /help for available commands [offline]: siguiendo la explicación dice que le de /L para registrar y poder quedar en línea, luego que le doy este comando me aparece un listado de comandos ejecutándose hasta que al final aparece lo siguiente y se sale. no he logrado aun enviar mi primer mensaje Me pueden ayudar por favor File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.0.53-py2.7.egg/yowsup/layers/protocol_notifications/layer.py", line 24, in recvNotification self.raiseErrorForNode(node) File "/usr/local/lib/python2.7/dist-packages/yowsup2-2.0.53-py2.7.egg/yowsup/layers/__init__.py", line 118, in raiseErrorForNode raise ValueError("Unimplemented notification type %s " % node) ValueError: Unimplemented notification type pi@rb1 ~/yowsup $

Alejandro moreno · Hace 2 años

esto lo realice en este momento y no fue posible, aun sigo sin poder ni siquiera ver help de yowsup . por favor me puedes regalar el paso a paso desde que arranco mi raspberry por primera vez., hasta enviar un mensaje a un numero en whatsapp. por favor ayuda con esto. saludos y muchas gracias por tu respuesta

Alejandro Lemus · Hace 2 años

ya cambio la version :( ya estos pasos son obsoletos hay que esperar

alejo · Hace 2 años

Hola ya con la version 2.0 no aparece config.example, que se debe

rodrigo · Hace 2 años

se debe a un cambio en la arquitectura de la API

Cris Pol · Hace 2 años

Saludos, Podrían ayudarme, como registro el numero de teléfono con la nueva versión del Yowsup 2.0.1

Alejandro moreno · Hace 2 años

Hola has podido llegar asta el registro sin problema, si le das ...registration --help te funciona?

Cris Pol · Hace 2 años

si he conseguido registrarlo y todo funciona bien, hasta el ejemplo que viene en el mismo demo de la nueva versión, solo tienes que borrar la version anterior y seguir los pasos del comentario de Ruben Vazquez Gonzalez (ver mas abajo). ahora me encuentro descifrando la sintaxis nueva, pero por lo pronto hay que esperar.

Alejandro moreno · Hace 2 años

Muchas gracias por tu respuesta ya he reinstalado la rasp desde cero y he hecho los pasos de Ruben, al final cuando intento correr el archivo para enviar el mensaje de registro me aparece este error: Traceback (most recent call last): File "/usr/local/bin/yowsup-cli", line 4, in import pkg_resources File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: readline que puede pasar o faltar para poder seguir con el siguiente paso Saludos

Rubén Vázquez González · Hace 2 años

Yo conseguí registrarlo y usar tanto la demo de Echo como la demo que te permite enviar mensajes desde una interfaz muy sencilla, intentaré explicarlo lo mejor que pueda y espero que te sirva, de paso vuelvo a insitir en lo que puse hace unos días por aqui debajo a ver si es prosible hacer un tutorial de la nueva version: Primero: Lee toda la documentacion de GitHub, empezando especialmente por aqui https://github.com/tgalal/yowsup/wiki/%5BLegacy%5D-yowsup-cli sudo apt-get update sudo apt-get upgrade sudo rpi-update sudo apt-get install python-dateutil sudo apt-get install argparse Instala esto tambien para poder instalar el setup: sudo apt-get install python-setuptools Ahora ejecuta el setup.py (supongo que ya tienes el yowsup descargado correctamente en la Pi) para ello situate en la ruta (yo tengo /home/pi/yowsup)donde esta el setup y ejecuta sudo python setup.py install Ahora en esa misma ruta crea un archivo y en el pones esto: " cc=34 #replace with your country code phone=346XXXXXXXX #full phone number including country code, without '+' or '00' id=FF:FF:FF:FF:FF:FF #IMEI or MAC address for iOS password=PASSWORD #your account's real password. If you don't know it just leave it blank until you do. " En passwords no pongas nada aún, si tienes un iPod o iPad busca en los ajustes su direccion MAC y sustituyela en id o usa el IMEI de un telefono corriente (yo use la MAC de un iPad). Ahora guarda todo Ahora tienes que defenderte en inglés y ejecutar: yowsup-cli registration --help (siempre en la ruta anteriormente dicha) Si te das cuenta ahí te explica todo, lo que tendrias que hacer es: yowsup-cli registration -c [nombre del archivo creado, no pongas los corchetes] -r sms con eso te envia un sms con el codigo.Ahora sustituye las XXX-XXX por el código enviado yowsup-cli registration -c [nombre del archivo creado] -R XXX-XXX te saldra un mensaje con el password, lo debes guardar en el archivo que creaste ante para poder enviar mensajes. Ahora ya se supone que esta listo para funcionar: Ejecuta: yowsup-cli demos -c [nombre de tu archivo de configuracion] -y y con esto te saldrá el Command Line tal como esto https://github.com/tgalal/yowsup/wiki/Yowsup-2.0-Command-line-client Ahora, en dicha ventana, veras que ya no sale pi@raspberry $ y pones: L -->esto sirve para aplicar el archivo de configuracion que creaste, ya te deberia de salir que la autentificación fue exitosa. ahora simplemente tienes que poner (para amndar un mensaje a un usuario) message send 346XXXXXXXX "Hola, mensaje usando yowsup 2.0.1" y listo.Para mas info como te indiqué lee la documentacion de github. Dejo mi correo por si alguien necesita ayuda o podría ayudarme a implementar mi código en esta versión: rubenvg.95@gmail.com Saludos y espero que haya servido de algo.

Mauricio Martinez · Hace 2 años

Consulta , lograste hacer un script nuevo usando el yowsup 2.0.1 ??

Rubén Vázquez González · Hace 2 años

Aún nada, esperando que alguien publique un Tutorial o código para saber cómo implementar mi código en la nueva versión.

Alejandro moreno · Hace 2 años

Ayuda no he podido poner a funcionar mi nueva raspberry pi b+, tenia antes la otra raspberry y funciono bien pero ahora que quería retomar esta aplicación ya no funcionan. segui todos los pasos de dice Ruben pero al momento de darle yowsup-cli registration --help me genera un error Traceback (most recent call last): File "/usr/local/bin/yowsup-cli", line 4, in import pkg_resources File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: readline esto es la raspberry pi b+ ,quien me ayuda por favor ya he reinstalado mi rasp en varias ocasiones y comenzado desde cero para luego hacer los pasos que indicas pero no he podido, me puedes ayudar

Rubén Vázquez González · Hace 2 años

Buenas, espero que alguien pueda ayudarme...Me he creado un pequeño programa en python con el que encender y apagar un led a través de Whatsapp, algo muy simple. El problema vienen cuando alguien mete el número asignado a la raspberry en un grupo. Desde ese momento ya no puedo hacer nada con el programa ya que me saltan todo tipo de errores...alguna idea de como poder solucionarlo?¿ Por cierto, si se pudiera hacer otro tuturial sobre la nueva version de Yowsup (2.0.1) se agradecería. Saludos y felicidades por los tutoriales!!

Espiando Whatsapp, hackeando Whatsapp... o espiandote a ti. | Nivel21 · Hace 2 años

[…] e imitar ser un dispositivo (seguirás cerrando la sesión en el dispositivo origen de la persona). GeekyTheory te explica como instalar yowsup en una raspberry pi, pero funciona con cualquier distro de […]

Brayant Mora · Hace 2 años

Hola, espero me puedan ayudar el directorio src/ no lo encuentro en el repositorio que se descargó, y por lo tanto no está el archivo config.example que se debe modificar, Saludos

Rubén Vázquez González · Hace 2 años

descargate la version 0.90 de yowsup en lugar de la 2.0.1 que surpime dicha carpeta https://github.com/tgalal/yowsup/releases

Mikel Garin · Hace 2 años

Hola ya estoy usando tu ejemplo para enviar mensajes. Uso otro nº de teléfono pero va bien. Me he hecho un pequeño programa para tener un menú con los teléfonos a los que mando mensajes habitualmente. Está hecho para consola y es muy simple pero funciona. No se si alguien puede darme una indicación para hacer eso mismo de forma gráfica. He comenzado a ver PyGTK y me parece que es muy duro. Para hacer una simple ventana sin más hay que escribir mucho código... Conoce alguien algún sistema que permita hacer la ventana con los controles que necesito y después hacer el código que gestione los eventos de cada componente? Saludos!

Abraham · Hace 2 años

Si he entendido bien lo que necesitas, podrías utilizar Tkinter, es una forma facil de hacer una pequeña interfaz sin mucho código.

Mikel Garin · Hace 2 años

Hola! Ante todo gracias por el tutorial y añadir que funciona muy bien. Lástima que WhatsApp solo dejen usar una conexión por número de móvil.

Emmanuel · Hace 2 años

erm3nda, tú tampoco escribes muy bien. No es lo mismo "como" que "cómo". No es lo mismo "que" que "qué". "Sera" en vez de "serás" también está mal, y se te pasó. "No es por criticar, es porque como dices que eres muy bueno": pésima sintaxis. Sería correcto "no es por criticar, pero es que como dices que eres muy bueno". Ah, y "super" no existe, seguramente querías escribir "súper".

erm3nda · Hace 2 años

¿Que tal se te da la gramática? ¿Y el copypast? Me hace gracia leer cosas como "para que podamos recibir y enviar mensaje desde nuestra Raspberry Pi, incluso esto se puede desde algunas distribuciones de Linux". Está muy claro que si puede funcionar en un Raspi, funciona en cualquier sistema *nix instalando Python. Y luego encima en unos sitios escribes muy bien, incluso veo acentos y luego me encuentro joyitas como " sera capas de mandar " en vez de "capaz" y tal. No es por criticar, es porque como dices que eres muy bueno en todo aquello, a lo mejor podrías prestar también algo de tu super capacidad a como lo escribes, pues somos los demás los que te estamos leyendo y BE DUELE LOS OJO. Suerte con tu proyecto R.A.S.H. :D tiene muy biena pinta. Saludos. PD: No todas las críticas son malas.

Williams · Hace 2 años

Al momento de querer enviar un mensaje, me aparece "Auth Failed!", alguien sabe porque es eso?

Williams · Hace 2 años

Ya lo solucioné, se me había olvidado poner el password en el config.example

Alejandro moreno · Hace 2 años

me puedes ayudar por favor a configurar el mio, no he podido. Saludos

Jose · Hace 2 años

Hola, Villak, la verdad muy bueno el tuto, soy de Argentina, no sabes cuanto tiempo tiene los numeros para registrar que te mandan?? ya que anoche obteni uno y esta mañana lo quise cargar pero no me funciona, otra consulta, para hacer la verificacion de los numeros, es necesario tenerlo al movil con el numero del wathsap funcionando?? ya que esta mañana al celular le habia sacado el chip, para probar el wathsapp en el raspberry, puede ser que por eso no me deje activarlo?? me parece este error reason: stale, sabes que significa?? Desde ya muchisimas gracias por tu tiempo, atte

Anonimo · Hace 2 años

Obtení ? OBTENI ??!!? OBTUVE!!

rodrigo · Hace 2 años

http://foro.remoteexecution.net/index.php/topic,567.msg1799.html#msg1799

Jgutierrez · Hace 2 años

gracias Rodrigo me pondré a leer

Jgutierrez · Hace 3 años

Hola Luis, he seguido tu proyecto desde hace mucho tiempo, desde coursera, espero que tu proyecto vaya muy bien, con tus tutoriales he podido trabajar con la libreria de yowsup, ahora tengo una duda, la raspebrry me envia mensajes con la ip publica, quiero prender un led enviando un mensajes desde mi cel a la raspberry, como puedo recoger la variable que se envia desde el cel y como la paso al arduino? muchas gracias

David · Hace 3 años

hola muchas gracias por tu tiempo, que le dedicaste a este tuto funciona a la perfeccion, solo tengo una duda, como termino la sesion despues de leer los mensajes que he recibido, ya que al momento de ejecutarlo la sesion sigue activa hasta que le doy ctrl+c y termina

Alejandro moreno · Hace 2 años

Hola me puedes Ayudar por favor a configurar mi raspberry aun no me funciona

[V I L L A K] · Hace 3 años

Hola, la verdad es que en la documentación de yowsup no mencionan como cerrar, asi que simplemente con el ctrl+c, siempre y cundo no le pongas -k no hay problema, porque con -k decimos que la conexión se mantenga, lo que nos da alrededor de 180 segundos de cesión con el servidor de WhatsApp y cada que pase ese tiempo volverá a decirle que se conecte.

Alejandro moreno · Hace 2 años

hola Villak muchas gracias por la información de tu pagina, tengo un problema, no he podido nuevamente poner a trabajar mi raspberry. me esta sacando un error Traceback (most recent call last): File "/usr/local/bin/yowsup-cli", line 4, in import pkg_resources File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in working_set.require(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve raise DistributionNotFound(req) pkg_resources.DistributionNotFound: readline Me puedes ayudar con esto por favor

Mauricio · Hace 3 años

Amigo tengo un problema con el código que dejaste, no puedo hacerlo jalar no deja de mandarme ImportError: No module named Examples.EchoClient que podra ser??

[V I L L A K] · Hace 3 años

Hola, amigo, exactamente donde o al hacer que te salio este error?

sergio ivan · Hace 3 años

mi correo grupoalvise@hotmail.com

Sergio Ivan · Hace 3 años

Hola amigo...exelente tuto te felicito. Ya e trabajado mucho tambien con esta libreria pero solo para mandar notificaciones de mi pc por whatsapp... podrias decirme como le hago para recibir mensajes y ejecutar acciones en mi pc mientras se esta ejecutando el programa en python?? como reiniciar la pc o mandar otro mensaje de confirmacion... utilice el listenerclient pero no consigo nada...me puedes ayudar???

Sergio Ivan · Hace 3 años

basicamente lo que quiero es manda un whatssap a la pc y ejecutar una accion...me ayudas con el scrip?

rm · Hace 3 años

Podes agregar una nueva funcion al onMessageReceived para capturar el messageContent y procesarlo, luego envias el mensaje procesado con la llamada "message_send"

NC · Hace 3 años

A mi tambien me interesa mucho este script, si tienes la oportunidad de hacer un pequeño ejemplo te lo agradeceria mucho ya tengo tiempo tratando de armarlo y aun sigue sin darme resultados, Gracias de antemano! n_castroe@hotmail.com

sergio ivan · Hace 3 años

ya vez amigo, ya somaos dos jaja estoy intentando como dices pero aun asi si puedes echarnos la mano se te agradeceria muchisimo!!!

sergio ivan · Hace 3 años

gracias amigo de verdad...y pues si puedes echarme la mano te encargo...muchisimas gracias

rm · Hace 3 años

El codigo fuente para leer y estudiarlo lo podes bajar de https://github.com/tgalal/yowsup y en https://github.com/tgalal/yowsup/wiki/Yowsup-Library-Documentation tenes la documentacion. Saludos

rm · Hace 3 años

Es cuestion de leer el codigo de yowsup y entender como trabaja, no es mucha ciencia. Para entenderlo mejor podrian leer algun apunte sobre programacion en python. En onMessageReceived recibe como parametro el contenido del mensaje (messageContent), lo guardan en una variable y despues lo procesan como ustedes quieran. No tengo ningun script ni nada. Cualquier cosa deja tu mail y cuando tenga tiempo armo uno y te lo paso. Saludos.

cris · Hace 3 años

cris_pol10@hotmail.com Gracias RM por la ayuda, en donde puedo leer la logica y sintaxis del yowsup para piton?

Sergio Ivan · Hace 3 años

echame la mano con el script no?

cris · Hace 3 años

También estoy interesado en el ejemplo de este script, de antemano gracias CM

amu raj · Hace 3 años

I am getting this error after running the command python yowsup-cli -c config.example --requestcode sms " Traceback (most recent call last): File "yowsup-cli", line 30, in from Yowsup.Common.utilities import Utilities File "/home/root/yowsup/src/Yowsup/Common/utilities.py", line 22, in import hashlib, string, os, base64, ast, sys ImportError: No module named ast " Anybody can help??

Santiago · Hace 3 años

Sigo el post paso por paso y todo hiba bien hasta el momento de enviar mensajes me marca este error: Traceback (most recent call last): File "yowsup-cli", line 229, in password = base64.b64decode(bytes(password.encode('utf-8'))) File "/usr/linbpython2.7/base64.py",, line 76, in b64decode raise TypeError(msg) TypeError: Incorrect padding No tengo idea que puede estar pasando eh hecho todo paso a paso, ¿alguna idea?

rodrigo · Hace 3 años

posiblemente no estas enviando bien la cadena de password. Verifica que hayas copiado bien la cadena de caracter del pass.

cris · Hace 3 años

como almaceno una variable enviada desde el celular en python? gracias. Felicitaciones por el post funciona perfecto.

rodrigo · Hace 3 años

hay varias maneras, es cuestion de reutilizar las librerias. Lo mas rapido que se me ocurre ahora es por ejemplo usar el cmd que trae la carpeta example y agregar un metodo a la clase WhatsappCmdClient que reciba el ID y el mesaje para poder procesarlo. Saludos

cris · Hace 3 años

me dejas en las mismas ya que no se programar bien aun, necesitaría un ejemplo para entender. Pero gracias por responder.

rodrigo · Hace 3 años

Ejemplos no tengo, lo que dije es solo una idea de como se podria almacenar un dato envia por whatsapp. Te recomiendo leer un poco de programacion en python para entender. Saludos

joshua · Hace 3 años

Que onda! Oigan todo va perfecto hasta que trato de pedir el codigo me dice: Traceback (most recent call last): File "ypwsup-cli", line 306, in elif args["dbus"]: KeyError: 'dbus' mas arriba lei un comentario que daba una pagina para registrar el numero lo puse y funciono perfecto me mando el codigo y cuando hise el siguiente paso: python yowsup-cli -c config.example --register ###-### me regresa lo mismo: Traceback (most recent call last): File "ypwsup-cli", line 306, in elif args["dbus"]: KeyError: 'dbus' ¿Alguna idea de como solucionar esto?

rodrigo · Hace 3 años

algo estas enviando mal, o hay un error en el archivo config.example, de ultima comentá la linea 306 y todo lo que tenga que ver con el dbus para ver a que se debe el error

joshua · Hace 3 años

Ya lo hise amigo, comente las lineas 207, 306 y la 307 que son las que hacen referencia al "dbus" ahora me dice : "Error: config file is invalid"

rodrigo · Hace 3 años

algo estas enviando mal al archivo config.example

medy003 · Hace 3 años

mira sigo con el mismo problema que tiene andres python yowsup-cli -c config.example -r sms Traceback (most recent call last): File "yowsup-cli", line 33, in from Examples.CmdClient import WhatsappCmdClient File "/home/bugtraq/yowsup/src/Examples/CmdClient.py", line 21, in from Yowsup.connectionmanager import YowsupConnectionManager File "/home/bugtraq/yowsup/src/Yowsup/connectionmanager.py", line 29, in from Yowsup.Common.watime import WATime File "/home/bugtraq/yowsup/src/Yowsup/Common/watime.py", line 26, in from .dateutil import tz ImportError: No module named dateutil no entiendo seguí con todos los pasos que indicas.. o es que ya no funciona?

Xoan · Hace 3 años

Me da error a la hora de pedir el pin con python yowsup-cli -c config.example --requestcode voice

medy003 · Hace 3 años

por acá recibí mi código sin contratiempo ni problemas. https://coderus.openrepos.net/whitesoft/whatsapp_sms

Xoan · Hace 3 años

Al final funciona o no ? Es para saber si intento hacerlo o ya paso ...

rodrigo · Hace 3 años

Muy buen post. Excelente tu sitio. Una consulta. Como puedo hacer para que tu codigo me muestre en consola solo de la misma forma que lo hace yowsup-cli?. porque usando la clase WhatsappEchoClient y el metodo login, me muestra en consola todo el proceso que realiza la clase, y no queda muy amigable, como lo hace el yowsup-cli con el param -s. Estuve tratando de entender la libreria, pero no encuentro la parte donde yowsup-cli depura toda la salida para mostrar un mensaje amigable. Saludos y espero tu ayuda.

[ V i L l A k ] · Hace 3 años

Muchas gracias Rodrigo, La verdad no se, ami me pasa lo mismo. Lo que he echo es un programa amigable que muestre y dentro de este ejecuta otro programa en segundo plano que ejecute Yowsup, de esta forma no se muestra los procesos que hace.

rm · Hace 3 años

Algo asi quiero hacer: https://www.youtube.com/watch?v=w0iJiGtlBu4 Tambien encontre un ejemplo muy bueno, donde basicamente parsea una nueva opcion en el cli para procesar una cadena http://bitacora.eniac2000.com/?p=3515 espero que te sirva

Octavio. · Hace 3 años

Amigo, como esta el asunto de los 13 pesos ? se tienen que pagar, o como se pagan ? gracias, saludos Ya lp probe y funciono al a perfecion.

[ V i L l A k ] · Hace 3 años

Eso es con WhatsApp según te regala el primer año pero el segundo año te pide 13 pesos, aunque yo llevo mas y no me han cobrado ni echo pagar nada.

andres · Hace 3 años

hola tengo una duda eh echo el proceso tal y como lo especificas en tu blog pero me sale esto al momento de ejecutar el comando me sale esto python yowsup-cli -c config.example -r sms Traceback (most recent call last): File "yowsup-cli", line 33, in from Examples.CmdClient import WhatsappCmdClient File "/home/bugtraq/yowsup/src/Examples/CmdClient.py", line 21, in from Yowsup.connectionmanager import YowsupConnectionManager File "/home/bugtraq/yowsup/src/Yowsup/connectionmanager.py", line 29, in from Yowsup.Common.watime import WATime File "/home/bugtraq/yowsup/src/Yowsup/Common/watime.py", line 26, in from .dateutil import tz ImportError: No module named dateutil me gustaria saber a que se debe a esto

[ V i L l A k] · Hace 3 años

Me parece que no tienes instalado de dateutil de python ejecuta en la terminal la siguiente instrucción espero y con esto solucione tu error sudo apt-get install python-dateutil Ademas revisa que tengas la ultima version del repositorio de Yowsup

Segio Vergara Ganado · Hace 3 años

Saludos. Te informo que me agrado mucho el documento que publicaste. Descarge lo que yowsup de la manera que indicas sin ningun problema. Lo configure con un numero de telcel (ciuidad de mexico), llego el PIN, lo ingrese y hasta el momento recibo mensajes del raspberry. He creado un programa en shell que me indica cuando a que hora se restablecio el sistema y el acceso a internet. Tambien brinda la temperatura y la fecha. Ahora voy quiero interactual con el para enviarle desde mi celular comando para efectuar ciertas acciones dentro del raspberry. Gracias nuevamente por la publicacion.

alejandro · Hace 3 años

Hola parece que quitaron el repositorio D:

[ V i L l A k] · Hace 3 años

Así es amigo, aparte WhatsApp bloqueo el acceso aunque tengas los repositorios ya no se puede acceder

AloPancho · Hace 3 años

Hola!!! Puedes compartir por ahi un repo o enviarme a mi correo la carpeta comprimida??? bajo.pairons@gmail.com Saludos!! pd: yo me descargue un proyecto para trabajar con telegram, muy bueno y simple, redireccione el input output para trabajarlo desde python :) https://github.com/vysheng/tg

[ V i L l A k] · Hace 3 años

Hola, WhatsApp ya bloqueo la forma de acceder, por lo que ya no funciona este método, confirmame si aun deseas que te mande el repositorio para buscarlo y mandártelo. Que interesante yo también estoy en ello con Telegram, me interesa saber como le has echo para configurar el input y output

AloPancho · Hace 3 años

buuuh, si, al final lo pude descargar, pero no pasa nada :( puedo enviar un mensaje, me dice que se envio pero al otro usuario no le llega nada :( Simple! con subprocess puedes abrir una pipa, aquí te dejo un código que envía 5 veces al usuario Pansho el mensaje "envia desde un programa hibrido de Python con C :)" Ahora tenia pensado hacer una interfaz en qt para interactuar más fácilmente que con la consola y python un híbrido de software-consola (si es que eso existe XD) Exito!! import subprocess import time a = './telegram -k tg.pub' process = subprocess.Popen(['./telegram', '-k', 'tg.pub'], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE) time.sleep(5) for i in range(5): process.stdin.write('msg Pansho envia desde un programa hibrido de Python con C :) \n') output = process.stdout.readline() print output time.sleep(1)

[ V i L l A k] · Hace 3 años

Si es casi como yo lo estoy manejando en este momento pero quiero buscar una solución mas estable, sin ejecutar subprocesos directamente hacer una api de Telegram para Python, Igual suerte amigo!

[ V i L l A k] · Hace 3 años

Hola amigo, si parece que lo han quitado, en cuento pueda lo subiré en algún servidor. De echo hoy mismo acabo de hacer un tutorial de como usar Telegram desde la Raspberry Pi, pronto estará posteado.

Francisco · Hace 3 años

que debes cambiar en el archivo src/Yowsup/Common/constants.py? La liga ya no existe Gracias

raulg · Hace 3 años

el repositorios de github esta caido que debo editar en el archivo src/Yowsup/Common/constants.py muchas gracias

elsorro · Hace 3 años

Por problemas legales ya no esta disponible en el github.... Alguien tiene alguna copia para poder usarlo??? Gracias!!

CobyNighter · Hace 3 años

wget -c http://davidgf.net/nightly/whatsapp-purple/x64/last-whatsapp.so git clone git://gitorious.org/wazapp-desktop/yowsup.git Tengo el problema de "Old Version", el link esta muerto....seguire buscando. Los repositorios de GitHub estan KO. Nota: si aparece un error diciendo que ha fallado por tener una versión vieja, tendremos que meternos a este archivo src/Yowsup/Common/constants.py para editar esto. Saludos ! :D

CobyNighter · Hace 3 años

git clone git://github.com/nprasan/yowsup.git Cambia el segundo repositorio por este !! :D Por cierto ya lo instale y esta trabajando :D :D

Sergio · Hace 3 años

Hola, excelente sitio, ahi alternativa para descargar la libreria yowsup? Gracias

Jorge · Hace 3 años

Parece que lo han quitado. Se puede bajar de otro sitio? Si no hay manera de conseguir algo parecido con Teelgram? https://github.com/vysheng/tg/ ? ¡Gracias!

mofeus · Hace 3 años

Que paso el sitio no responde al tratar de bajarlo. yowsup??

[ V i L l A k] · Hace 3 años

Hola, me acabo de dar cuenta que el sitio esta caído en breve subiré un respaldo que tengo.

[ V i L l A k] · Hace 3 años

Que bien amigo, que buena aplicación le diste a yowsup.

Morfeus · Hace 3 años

Estimado, Muy interesante esto, por fin le daré uso a mi RassBerryPi, la pregunta es el uso de esta librería es permitida por whatsapp, no la cortaran...?? y si es así, sera mantenida de alguna forma para poder seguir usándola.

[ V i L l A k] · Hace 3 años

Hola, pues no es una librería oficial de WhatsApp, sin embargo no irrumpe con ninguna norama de la aplicación, mientras los creadores las sigan actualizando como han echo no creo que aya algún problema.

Fran · Hace 3 años

Hola tengo un problema aver si se puede solucionar. Al ejecutar este comando: git clone git://github.com/tgalal/yowsup.git me da como resultado esto: fatal: destination path 'yowsup' already exists and is not an empty directory. a que puede ser debido esto. Gracias de antemano

[ V i L l A k] · Hace 3 años

Hola, Una disculpa esta mal el comando en terminal ejecuta lo siguiente: git clone https://github.com/tgalal/yowsup.git prueba con eso amigo.

Fran · Hace 3 años

Nada amigo no hay nada que hacer e probado como tu indicas no me muestra la misma salida de antes

[ V i L l A k] · Hace 3 años

Que raro yo acabo de de descargarlo de esa manera amigo , pero bueno no te desanimes entra a la pagina descargalo y lo descomprimes en tu raspberry, en la parte derecha esta la opcion de descargar https://github.com/tgalal/yowsup

Fran · Hace 3 años

Me contesto solo ya e averiguado el error, mi problema era que se habia creado la carpeta por algun motivo que desconozco y por ese motivo no me dejaba seguir. He borrado la carpeta y me a dejado clonar. Gracias de todos modos

Victor de la Cruz · Hace 3 años

Que hay man buena informacion aunque de phyton no se nada XD trabajo en plataforma java, pero esto es genial, saludos intentare realizarlo :D

[ V i L l A k] · Hace 3 años

Hola, muchas gracias, no te preocupes en esta pagina hay muy buenos tutoriales de python y es el lenguaje mas fácil de usar.

alejandro · Hace 3 años

mira tengo este script jeje mal parchado cuando lo ejecuto yo desde terminal funciona pero cuando quiero que transmission lo haga solo llega el correo y el mensaje del chata pero no el whatsapp que podria estar mal ? #!/bin/bash python yowsup-cli -c config.example -w -s 50248970108 "$TR_TORRENT_NAME descargado correctamente" echo "$TR_TORRENT_NAME descargado correctamente" | mutt -s "nuevo torrent descargado" alejandro0693@gmail.com /usr/bin/minidlna -R echo "$TR_TORRENT_NAME descargado correctamente" | sendxmpp -t alejandro0693@gmail.com funciona todo menos el whatsapp?

[ V i L l A k] · Hace 3 años

Hola, oye pues por lo que veo tu numero tan solo tiene 11 dígitos y tienen que ser 13, 10 de tus dígitos de celular + 3 del área de tu país.

alejandro · Hace 3 años

funciona en mi pais el codigo de area es 502 guatemala y el numero es de 48970108 funciona e usado el chat pero cuando ejecuto el script funciona pero cuando torret termina de bajar algun archivo envia el correo y el mensaje al chat pero no envia el whatsapp? que podria ser? o como miras mi script jajaja feo pero casi funciona

alejandro · Hace 3 años

me funcione gracias caval la ruta completa del archivo y que no le avia puesto cc como decia que lo detecta automaticamente si esta en la carpeta pero si lo llamamos esternamente si lo necesita jejeje

[ V i L l A k] · Hace 3 años

Quisa sea la direccion donde esta el programa prueba con esto: python /yowsup/src/yowsup-cli -c /yowsup/src/config.example -w -s 50248970108 "$TR_TORRENT_NAME descargado correctamente" bueno agrega toda la dirección donde se encuentra tu directorio youwsup home/pi/yowsup/src/yowsup-cli en mi caso.

Whatsapp en raspberry pi con yowsup. | Libuntu · Hace 3 años

[…] el resultado. He subido un video a youtube de ello – Podeis ver el tutorial de instalacion : Pinchando AQUI - Quiero pedir perdón por la calidad del video ya que para este tipo de […]

Tutorial Raspberry Pi : WhatsApp con Python - Free Berries · Hace 3 años

[…] Este tutorial fue reeposteado de Geeky Theory […]

Javi · Hace 3 años

trato de ejecutar este programa dentro de /yowsup/src import base64 import serial from Examples.EchoClient import WhatsappEchoClient # la clave de acceso a whatsapp password = "**********" password = base64.b64decode(bytes(password.encode('utf-8'))) username = 'elnumero' keepAlive= False arduino = serial.Serial('dev/ttyACM0',9600) while True: dato = raw_input('Dame el dato ') arduino.write(dato) if dato == 'H': print("LED encendido") whats = WhatsappEchoClient("numerodecontacto", "Mi led esta ON", keepAlive) whats.login(username, password) elif dato == 'L': print("LED apagado") whats = WhatsappEchoClient("numerodecontacto", "Mi led esta OFF", keepAlive) whats.login(username, password) arduino.close() Es muy casi igual a un tutorial de esta pagina, solo que intentado mandar un whatsapp en cada apartado. No se si se podrá o lo estoy haciendo mal. De todas formas es una ayuda una pagina así esta es la pagina, yo dejo el codigo de mi arduino igual que esta. http://geekytheory.com/arduino-raspberry-pi-raspduino/ gracias amigo =)

[ V i L l A k] · Hace 3 años

La verdad no encuentro porque falla amigo pare estar bien tu código, en cuanto tenga tiempo lo copio y trato de correrlo vale

Javi · Hace 3 años

Sí fue perfecto, solucioné mi problema. Al final intentándolo me llegó el código. Es fantástico, lo he probado y va muy bien. ¿Podría ejecutar este código con el Arduino? es decir que Arduino detecte una notificación y la Raspberry me mande el mensaje? he probado hacer un programa en python dentro de estas librerías yowsup/src/ para que pueda mandar whatsapp pero no reconoce los comandos del programa como un simple print no entiendo el problema. Muchas gracias por la ayuda!

[ V i L l A k] · Hace 3 años

Que bien me alegro amigo. No creo no he encontrado una librería de arduino que haga tal cosa, sigue el ejemplo como lo puse al final, si quieres postea tu programa y trato de encontrar el error. No te preocupes para eso estamos para ayudarnos mutuamente, gracias a ti se otras fallas que pudiese tener esta librería.

Javi · Hace 3 años

Hola buen tutorial y muy interesante desde mi punto de vista, pero tengo una duda y no consigo avanzar en el. A la hora de registrar nuestro número, me da el error que avisaste, diciendo que ha fallado por tener una versión vieja, entonces entro a modificar el archivo, pero para mi sorpresa ya lo está. Mi archivo ya tiene las modificaciones verdes que venían en el link. No se que estoy haciendo mal o si me falta algún paso. Cualquier ayuda o aclaración lo agradecería. Un abrazo!

[ V i L l A k] · Hace 3 años

Hola, muchas gracias... Verifica si en verdad tenga todas las modificaciones del link y verifica estas modificaciones también https://github.com/tgalal/yowsup/commit/e9ab0962b6a42aadff87ff0a6bf18aa006f26875 Ojala que con se arregle tu problema amigo.

Dany · Hace 3 años

Wenas!! al final si que consegui hacerlo funcionar a la perfeccion! era por no poner el prefico en el numero de destino. Muchas gracias!!!! ahora me gustaria, poder mandarle comandos para que me haga algunas cositas... un abrazo compi!

VILLAK · Hace 3 años

Que bien amigo, si suponía que era algo de eso, si es algo muy interesante checa la librería seguro con un poco de tiempo podrás hacerlo amigo.

Paco Garcia · Hace 3 años

Gracias Villak. Investigaré esta librería.

Paco Garcia · Hace 3 años

Perfecto!! Ha salido bien a la primera. Gracias por compartirlo. No obstante, ¿Se podría enviar una imagen? Por ejemplo tomada con raspistill

VILLAK · Hace 3 años

Que bien, me alegra ... claro que se pude sonidos, vídeo e imágenes solo que aun no se bien la sintaxis pero pretendo hacer otro tutorial mas avanzado, donde enseñe a mandar estos archivos amigo. Te invito a darle una ojeada a la librería en https://github.com/tgalal/yowsup.

Dany · Hace 3 años

Hola. Muy buen tutorial. .. me gustó mucho. Lo he probado y no consigo que me envié los WhatsApp. .. pero me pone que esta enviado. ... Si que puedo recibirlos y hacer una charla. ... sin enviar menajes. ... no se cual es el problema. ... Un saludo y muchas gracias.

VILLAK · Hace 3 años

Hola, Muchas Gracias... Ok puede que tu numero de destinatario este mal, lo hiciste con python? o ejecutando yowsup-cli en la terminal?, si es con python puedes postear el código para verificar errores. Pero yo te recomiendo checar bien tu numero, se supone que es el código de tu país+tus 10 dígitos del teléfono.

Julio Cesar Vivas · Hace 3 años

Buen tutorial. Espero hacerme de algún tiempo libre para probarlo. Saludos cordiales.

VILLAK · Hace 3 años

Gracias!... si es bastante interesante y practico. En cuanto lo pruebes me dices que tal te salio cualquier duda que tengas deja un comentario y con gusto responderé.

Whatsapp en Python con Yowsup - Raspberry Pi | Python · Hace 3 años

[…] Seguir leyendo el tutorial | GeekyTheory […]