Hello,

I have a facebook app hosted on heroku working with the lastest stable 
Web2py.
Initially everything works perfect (in local and in production server), but 
sometimes, when restarting (in case of local on local modifications; and in 
case of production, either when heroku restarts the server, or on git push 
heroku master command), sometimes it breaks giving the error: 
<type 'exceptions.SyntaxError'> No fields to update
Traces here: http://pastebin.com/y8bseuAN


When this happens, the only way I have found to make it work again, is to 
actually reset the db (in local, erasing everything and letting web2py 
remake it all). This, of course, is not too nice.

Details on the system, configurations, etc:

Facebook application is taken from example 
https://code.google.com/r/michelecomitini-facebookaccess/ helloFacebook app
facebook.py is updated to the latest version of the 
https://github.com/pythonforfacebook 
db is configured with:
------------------------------------------------------------
from gluon.contrib.heroku import 
get_db                                         
db = get_db() 
------------------------------------------------------------
virtualenv is configured, requirements.txt file has the following
------------------------------------------------------------
argparse==1.2.1
distribute==0.6.24
gunicorn==0.17.2
psycopg2==2.4.6
requests==1.1.0
wsgiref==0.1.2
------------------------------------------------------------
I have tried with gunicorn and with rocket servers, configuration Procfiles 
containing 
------------------------------------------------------------
either:
web: python anyserver.py -s gunicorn -i 0.0.0.0 -p $PORT 
or:
web: python  web2py.py -a mypasswd -i 0.0.0.0 -p $PORT 
------------------------------------------------------------


Questions:
Why is the system trying to update the DB when doing the login with OAuth?
Why it should break when an update is empty, instead of ignoring the error 
and saying that nothing was done instead?
Have you got any clues on how to start solving the issue?  I sincerely have 
no clue about what lead to follow. 
I am tented to modify the dal.py file and tell it to ignore the error

Another thing that I need to state:

When first tried to login, the redirect address generated by OAuth was 
wrong, it gave my local personal IP address, instead of the one in the 
server (I don't know why), I managed to solve it modifying:

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 ... WHY??? 
107        http_host = r.env.http_host
------------------------------------------------------------------------------  
  


Reading in the book (chapter The Core)  and in the ref.
I do not get why we should use  env.http_x_forwarded_for instead of 
env.http_host , 
Don't we want the server address to be the redirection address? 
Why would we even want an address that is the client AND can be spoofed?



-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to