def get_weibo_login_url(cls):
     '''获取微博登陆url'''
     _back = urllib.urlencode({
         'url': request.path,
         'ids': request.query.get('ids', '')
     })
     client = APIClient(app_key=wb.app_key,
                        app_secret=wb.app_secret,
                        redirect_uri='%s%s' % (wb.redirect_uri, _back))
     url = client.get_authorize_url()
     return url
 def get_active_client(cls):
     '''获取可执行的client'''
     _cookie = get_token_from_cookie()
     if _cookie:
         r = Dict(json.loads(_cookie))
         client = APIClient(app_key=wb.app_key,
                            app_secret=wb.app_secret,
                            redirect_uri=wb.redirect_uri)
         client.set_access_token(r.access_token, r.expires_in)
         return client
     _url = cls().get_weibo_login_url()
     return dict(done=False, url=_url, message=u'需要登录')
 def get_token(cls):
     '''获取token及expires_in'''
     _code = request.query.get('code', None)
     _url = request.query.get('url', None)
     _ids = request.query.get('ids', None)
     if _code:
         client = APIClient(app_key=wb.app_key,
                            app_secret=wb.app_secret,
                            redirect_uri=wb.redirect_uri)
         r = client.request_access_token(_code)
         set_token_to_cookie(r)  #保存token到cookie中
         redirect('%s%s?ids=%s' % (get_site_url()[:-1], _url, _ids))
     return dict(done=False,
                 url=cls().get_weibo_login_url(),
                 message=u'需要登录')