[pyar] Problema <type 'exceptions.SyntaxError'> No fields to update en Heroku con Web2py y facebook login
Leonardo M. Rocha
leo.m.rocha en gmail.com
Vie Mar 8 07:59:41 ART 2013
Hola,
Estoy jugando con una APP en facebook, con Web2py y en heroku.
Todo marcha bien en general, excepto, que de vez en cuando despues de
un reinicio del server (sea porque heroku lo quiere o porque hago un
push, o sea en el server local con foreman start) cuando hago el
login, me salta:
<type 'exceptions.SyntaxError'> No fields to update
Trace aca: http://pastebin.com/y8bseuAN
La unica forma que encontre de "solucionar" el problema es reiniciando
la DB a cero (pierdo todo :/)
Ah, esto pasa con la DB sqlite (local) y con la db postgres (en produccion)
Configuracion de mis cosas, detalles, etc:
Web2py stable, el ultimo de hace unos dias,
facebook.py actualizado de aca: https://github.com/pythonforfacebook a
la ultima version
helloFacebook example tomado de aca:
https://code.google.com/r/michelecomitini-facebookaccess
Configuracion de la DB segun la ultima moda:
from gluon.contrib.heroku import get_db
db = get_db()
Configuracion de virtualenv con los requirements.txt de pip:
argparse==1.2.1
distribute==0.6.24
gunicorn==0.17.2
psycopg2==2.4.6
requests==1.1.0
wsgiref==0.1.2
y configuracion de Procfile
para gunicorn:
web: python anyserver.py -s gunicorn -i 0.0.0.0 -p $PORT
para rocket
web: python web2py.py -a mypass -i 0.0.0.0 -p $PORT
(el error pasa con ambos servers)
Por que tiene que hacer un update de la DB cuando hago login con OAuth2.0?
Por que se rompe si no hay campos a actualizar si en vez de eso
deberia ignorar el error y decirme, ok, no me hago drama?
Que se les ocurre que puedo intentar?
Otra cosa,
Al principio fallaba el login con Oauth y descubri que es porque la
direccion de redirect la ponia con mi IP de mi casa en vez del server
heroku.
Lo solucione cambiando
gluon/contrib/login_methods/oauth20_account.py
105 r = current.request
106 #http_host = r.env.http_x_forwarded_for #THIS was making a
problem getting my laptop address instead of my server address
107 http_host = r.env.http_host
descubri que r.env.http_x_forwarded_for 1, no es confiable (se le
puede hacer sppofing) y 2, es el cliente!! por que querria poner el
cliente en la direccion de redirect?
Si tienen una linea, se agradece!!!
Exitos
Leo
More information about the pyar
mailing list