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


3 comentarios:

  1. Buenas noches,

    He seguido las instrucciones (excepto el paso 3 que ya lo tenía así) y no me funciona. Agradeceria cualquier tipo de ayuda.

    ResponderEliminar
    Respuestas
    1. Hola Edgar, en mi caso el error lo solucione de esa forma. Las salidas de error en pantalla son las mismas?
      Saludos

      Eliminar
  2. Volvio el mismo problema... y por lo que vi cambio el TokenString del s40 env.... https://raw.githubusercontent.com/tgalal/yowsup/master/yowsup/env/env_s40.py

    Actualizando ese archivo vuelve a funcionar el querido yowsup!

    ResponderEliminar