2013-03-28 2 views
0

У меня возникли трудности с использованием сеанса dropbox в web2py. Вот мой контроллер по умолчанию с 2-мя способами:web2py dropbox integration

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? –

 Смежные вопросы

  • Нет связанных вопросов^_^