2013-03-28 63 views
0

我在web2py中使用dropbox会话时遇到困难。这里是我的2种方法的默认控制器:web2py dropbox集成

def index(): 
    APP_KEY = 'XXXXXXXXXXX' 
    APP_SECRET = 'XXXXXXXXXXX' 
    ACCESS_TYPE = 'dropbox' 
    sess = dropbox.session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) 
    request_token = sess.obtain_request_token() 
    url = sess.build_authorize_url(request_token, "http://localhost:8000/dropbox/default/welcome") 
    redirect(url) 

def welcome(): 
    ## How do I get the session object here?? 
    access_token = sess.obtain_access_token(request_token) 
    client = dropbox.client.DropboxClient(sess) 
    return dict(message=T("Welcome user!" + client.account_info())) 

我一直在使用current.session试过了,也试过缓存会话,但它并没有为我工作。

有人可以提供一些关于如何在索引方法中保存dropbox会话,并能够在其他方法/控制器中使用它的帮助。代码示例将非常感谢。

谢谢。

回答

0

你可以把模型是这样的(未经测试),所以dropbox_session将成为适用于所有控制器...

def __make_dropbox_connection(): 
    sess = dropbox.session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE) 

    print("DROPBOX Connection established ...") 
    return sess 

## 
dropbox_sess = cache.ram('dropbox',__make_dropbox_connection,None) 
+0

谢谢您的回答。我能够找到保存请求令牌和Dropbox会话而不使用缓存的另一种方式。我的第二个问题是web2py会话和current.session有什么区别。你在current.session中存储的变量是否持久? – 2013-03-31 01:32:15