Conectar XMPP con WhatsApp usando yowsup y transWhat

Conectar XMPP con WhatsApp usando yowsup y transWhat

18-May-2017 por author Megver83

¿No te ha pasado que la comunicación con tus amigos, familia, etc. se dificulta por el simple hecho de no usar WhatsApp? Claro, es una solución rápida, fácil y además multiplataforma, pero no respeta las libertades y derechos de los usuarios. Conozco mucha gente del mundo del software libre que se ha visto obligada a instalarlo porque no hay otra forma de comunicarse con quienes necesitan hacerlo (sea por trabajo, tareas escolares, o simplemente mantener contacto con sus seres queridos). Sin embargo, con yowsup y transWhat eso se acabó. Con ambos, podrás chatear con los usuarios de WhatsApp, estar en sus grupos y más, utilizando la red de mensajería instantánea descentralizada más conocida: XMPP.

¿Qué son yowsup y transWhat?

Yowsup es una biblioteca de python que te permite crear aplicaciones que usan el servicio de WhatsApp. Yowsup se ha utilizado para crear un cliente no oficial de WhatsApp Nokia N9 a través del proyecto Wazapp que estaba en uso por 200K + usuarios, así como otro completamente oficioso cliente no oficial para Blackberry 10. Por el otro lado, transWhat es una puerta de enlace entre las redes de mensajería instantánea XMPP y WhatsApp.

Genial! ¿Cómo empiezo?

Los requisitos básicos son:

  • Tener pip instalado.
  • Crearse una cuenta (en el caso de no tenerla) de XMPP con soporte para la pasarela transWhat. Por ejemplo, JabJab.de
  • Tener un número de teléfono móvil (celular).
  • Tener un cliente XMPP avanzado, por ejemplo Gajim, con la cuenta XMPP a usarse configurada.

Entonces, ¡Manos a la obra!

Desde un terminal, instala el paquete yowsup2 con pip como root.

# pip install yowsup2

Después de haberlo instalado, asegúrate que en el archivo
/usr/lib/python3.6/site-packages/yowsup/env/env.py
en la variable DEFAULT diga “Android” (incluyendo las comillas), lee este comentario de un issue del repositorio GitHub de yowsup.

Creación de la cuenta

Para crearte una cuenta con yowsup, debes ejecutar el siguiente comando:

$ yowsup-cli registration -E s40 -r sms -p <nº_de_teléfono> -C <código_del_país> -m <código_móvil_del_país> -n <código_móvil_de_la_red>

Entonces, como dijo Jack el destripador, vamos por parte.

  • <nº_de_teléfono> debe ser el número de teléfono completo, con el código del país, exceptuando el signo +
  • <código_del_país> corresponde al código del país, si no te sabes el tuyo, míralo aquí.
  • <código_móvil_del_país> Es el MCC que lo puedes encontrar aquí.
  • <código_móvil_de_la_red> Es el MNC que también lo puedes encontrar en la misma página que <código_móvil_del_país>

Si todo funcionó, debería aparecerte algo como esto al final del comando, deberías recibir un mensaje de texto con el código para registrarte, de forma similar, escribe:

$ yowsup-cli registration -E s40 -p <nº_de_teléfono> -C <código_del_país> -m <código_móvil_del_país> -n <código_móvil_de_la_red> -R <código_del_sms>

Donde <código_del_sms> corresponde al código que recibiste en tu celular. El resultado del comando, cerca del final, deberías obtener algo como:

INFO:yowsup.common.http.warequest:b'{"status":"ok","login":"<nº_de_teléfono>","type":"existing","pw":"FBmvgZs8UUbSX2ZHeVyxc7G7g4s=","expiration":4444444444.0,"kind":"free","price":"US$0.99","cost":"0.99","currency":"USD","price_expiration":1497967560}\n' status: b'ok' login: b'<nº_de_teléfono>' pw: b'<contraseña>' type: b'existing' expiration: 4444444444.0 kind: b'free' price: b'US$0.99' cost: b'0.99' currency: b'USD' price_expiration: 1497967560

Lo que nos interesa de aquí es lo que está ennegrecido. A ustedes les mostrará su número de teléfono y una contraseña, que ahora usaremos para conectar XMPP con WhatsApp. Nota que las letras “b” y los apostrofes no están ennegrecidos.

Conectando XMPP y WhatsApp con transWhat.

Entonces, ahora que tenemos el número y la contraseña, es hora de la acción. Si usas Gajim, ve a Acciones> Descubrir servicios> usando la cuenta jabjab.de (o la que ustedes usen con soporte transWhat). En la sección “Transportes” selecciona “transWhat” y luego haz click en “Suscribir”, te pedirá el número y contraseña que obtuviste con yowsup.

Listo! Ya tienes una cuenta XMPP funcional con WhatsApp. Para agregar contactos de WhatsApp tienes que añadirlos con la dirección <nº_de_teléfono>@dominio.del.transporte

Nota: <nº_de_teléfono> tiene que ser el número completo pero sin el signo +, igual que cuando te registraste.

Para finalizar

Esperamos que te haya servido este tutorial, compártelo con tus amigos, en redes sociales y has derivados de este artículo si lo deseas, recuerda que Conocimientos Libres se trata de eso 😀

Le agradezco a trinux, quien fue la persona que me enseñó como conectar XMPP y WhatsApp.

  • trinux dice:

    Magnifico, muy bien explicado. Gracias por el crédito. Reseñar que yowsup es una pequeña maravilla, de otras muchas, hechas en Python.

    XMPP (anteriormente Jabber) desde sus inicios a tenido presente la interoperabilidad con otras redes. Cosa que por otro lado ningún otro protocolo tiene presente, ni interés. La piedra centra y responsable es Spectrum 2.

  • Pablo dice:

    Con este parche: https://github.com/tgalal/yowsup/pull/2030/files puedes registrar usando el environment de android (el del s40 fallaba).

    Faltará el tema de que al ‘verificar’ otro número de teléfono, el whatsapp del móvil deja de funcionar, me suena que algunas aplicaciones modifican la bbdd o leen de la bbdd del móvil el código para poder tener ambos a la vez, aunque supongo que la alternativa cómoda es directamente, tener un cliente de jabber en el móvil

  • Megver83 dice:

    Respecto a lo del s40, ese error era porque la variable no era “Android” como correspondía. Me gustó bastante esto y quiero ver si es posible también con Telegram, Signal, y otros. Tampoco es que yo los apoye pero ya saben ¡el conocimiento es libre!

  • DistopicoVegan dice:

    Pero al final terminas registrandote en whatsapp y estando en sus servidoes y enviando tu información por su protocolo, seria como tener pidgin con XMPP y un plugin con whatsapp

  • Joaquien dice:

    Hola! Disculpa que esta pregunta no este relacionada a tu post pero queria aprovechar para preguntarte que paso con tu pagina web dedicada a dragon ball super? dbsuperhd.com He estado intentando ingresar pero no sale nada.

  • Adrian dice:

    Tienes algun Token para 2.17.xx

  • Jaime dice:

    Saludos… No logro ejecutar el comando, en la primera parte me da el error “syntax error near unexpected token `58′” …… estoy ingresando la siguiente configuración:

    yowsup-cli registration -E s40 -r sms -p -C -m -n