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

Reply via email to