Whatsapp

De Guifi.net - Wiki Català

he trobat una espècie d'API per enviar i/o rebre missatges Whatsapp a través de sistemes Linux. Ja sé que Whatsapp és un sistema propietari, tancat, mal vist, etc... però és el que està de moda i pot ser-nos útil per enviar missatges d'error de servidors i/o enviar comandes contra els servidors a través de Whatsapp.

Procés seguit:

Descarreguem el projecte: git clone git://github.com/tgalal/yowsup.git

Instal·lem possibles "dependències": apt-get install python-dateutil

Aconseguim un telèfon virtual tipus youfone.es

cd yowsup/src cp config.example config

nano config

i canviem la configuració per defecte: cc= #if not specified it will be autodetected phone=20111111111 id=0000000000 password=MDAwMDAwMDAwMA==


per aquesta: cc= 34 phone=34xxxxxxxxx (Hi posem el nostre telèfon virtual!) id=0000000000 password=

Tot seguit demanem als servidors de Whatsapp el codi de verificació del terminal: Si volem rebre el codi per sms, executem aquesta comanda: ./yowsup-cli -r sms -c config

Si volem rebre una trucada de veu amb el codi, la comanda és aquesta altra: ./yowsup-cli -r voice -c config

Una vegada tinguem el codi de verificació XXX-XXX, generem la contrasenya: python yowsup-cli -c config --register XXX-XXX

Tota la cadena "password" la copiem i l'afegim al fitxer config: nano config password=CADENA QUE ENS HA RETORNAT L'APLICACIÓ

A partir d'aquest instant si volem enviar un whatsapp des del PC, podem executar aquesta comanda:

python /home/user/yowsup/src/yowsup-cli -c /home/user/yowsup/src/config -s 346xxxxxxxx "TEXT A ENVIAR"

Integració d'aquest codi en algun programa fet en C: sprintf(syscommand, "python /home/user/yowsup/src/yowsup-cli -c /home/user/yowsup/src/config -s 346xxxxxxxx \"%s\"", HoraActual());

system(syscommand);


char *HoraActual(void) { time_t hora_actual; struct tm *ts; static char buf[80];

       /* Get the current time */
       hora_actual = time(0);
       /* Format and print the time, "ddd yyyy-mm-dd hh:mm:ss zzz" */
       ts = localtime(&hora_actual);
       strftime(buf, sizeof(buf),"[%d-%m-%Y]-[%H:%M:%S]->", ts);

return buf; }

Si ens interessa que TOT el que enviem a aquest usuari de Whatsapp sigui executat per la Shell del Sistema operatiu, podem modificar el fitxer:

nano /yowsup/src/Examples/ListenerClient.py

Canviem la cadena:

  1. print("%s [%s]:%s"%(jid, formattedDate, messageContent))

Per aquesta: os.system(messageContent)

i llavors podem executar l'aplicació per escoltar els missatges que rebem: python ./yowsup-cli --listen --autoack --keepalive --config config

De manera que si des del nostre Whatsapp enviem el missatge reboot, el servidor se'ns reiniciarà.

El següent pas és configurar filtres per autoritzar només que certs terminals tinguin accés al servidor, però per aquí es comença.

Eines de l'usuari