jueves, 25 de agosto de 2016

Solución a Yowsup "status: fail \ reason: old_version - Authentication Error: not-authorized"

Hoy me percate de que Yowsup dejo de funcionar.

Ya que la razón del error que salia en pantalla marcaba "old_version" lo primero que supuse es que tenia que reinstalar yowsup, pero la solución es mucho mas sencilla.

En internet encontré el siguiente link que da a la solución: https://github.com/tgalal/yowsup/pull/1725


Lo que propone es cambiar una variable en uno de los archivos .py, y es la variable que hace referencia a la versión de whatsapp.

Ejemplos de los errores en pantalla:

[root@sysmon01 ~]# yowsup-cli registration --requestcode voice --phone 549112395XXXX --cc 54
yowsup-cli v2.0.15
yowsup v2.5.0
Copyright (c) 2012-2016 Tarek Galal
http://www.openwhatsapp.org
This software is provided free of charge. Copying and redistribution is encouraged.
If you appreciate this software and you would like to support future development please consider donating:
http://openwhatsapp.org/yowsup/donate

INFO:yowsup.common.http.warequest:{"status":"fail","reason":"old_version"}
INFO:yowsup.common.http.warequest:{"status":"fail","reason":"old_version"}

status: fail
reason: old_version


[root@sysmon01 ~]# yowsup-cli demos -c /root/yowsup-cli.conf -s 5491140XXXXX 'Prueba'
yowsup-cli  v2.0.15
yowsup      v2.5.0
Copyright (c) 2012-2016 Tarek Galal
http://www.openwhatsapp.org
This software is provided free of charge. Copying and redistribution is encouraged.
If you appreciate this software and you would like to support future development please consider donating:
http://openwhatsapp.org/yowsup/donate

/usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/demos/sendclient/stack.py:33: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
  print("Authentication Error: %s" % e.message)
Authentication Error: not-authorized

La solución:
  1. Buscar donde tenemos el archivo: env_s40.py

    find / -name "env_s40.p*"

    /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.pyc
    /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.py
  2. Eliminar el archivo compilado: env_s40.pyc

    rm -f /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.pyc
  3. Editar el archivo: env_s40.py

    vim /usr/lib/python2.6/site-packages/yowsup2-2.5.0-py2.6.egg/yowsup/env/env_s40.py

    Cambiar el contenido de la variable de la linea 4 por: _VERSION = "2.16.9"

    Guardar y salir: wr
  4. Eso es todo, solo quedaría verificar, no hay que reinstalar ni volver a registrar!


Para los curiosos, encontré un excelente visor de logs hecho por el creador del Logstalgia que se puede adaptar a nuestro querido yowsup:




Saludos!
Hernán


Actualización:

En el siguiente link se pueden ver las versiones previas de whatsapp: https://whatsapp-messenger.en.uptodown.com/android/old