I am using web2py v2.4.5 and dropbox v1.5.1 for a project and I get "invalid token" error. I have a default controller with 3 methods. index() takes the user to the authorization url with a callback to welcome(). This part works fine. When I make a call to the third method userinfo() I get "invalid token" error. See attached source code. Can anyone help me with this? Thank you
-- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
import dropbox from gluon import current def index(): if not session.request_token_key: sess = _dropbox_session() request_token = sess.obtain_request_token() session.request_token_key = request_token.key session.request_token_secret = request_token.secret url = sess.build_authorize_url(request_token, "http://localhost:8000/dropbox/default/welcome") redirect(url) else: redirect('welcome') def welcome(): client = _dropbox_client() return dict(message=T("Welcome " + client.account_info()['display_name'])) def userinfo(): client = _dropbox_client() return dict(message=T("Welcome " + client.account_info()['display_name'])) ## utils def _dropbox_session(): APP_KEY = 'XXXXXXXXXXXXX' APP_SECRET = 'XXXXXXXXXXXXX' ACCESS_TYPE = 'dropbox' sess = dropbox.session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) return sess def _dropbox_client(): sess = _dropbox_session() if not session.request_token_key: #redirect user to login return None elif not current.session.access_token_key: sess.set_request_token(session.request_token_key, session.request_token_secret) access_token = sess.obtain_access_token(sess.request_token) current.session.access_token_key = access_token.key current.session.access_token_secrest = access_token.secret else: sess.set_request_token(session.request_token_key, session.request_token_secret) sess.set_token(current.session.access_token_key, current.session.access_token_secret) client = dropbox.client.DropboxClient(sess) return client