def callback(): i = web.input() code = i.get("code", None) if code: # /callback?code=xxx client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET) token = client.request_access_token(code, _CALLBACK_URL) logging.info("got access token: %s" % str(token)) uid = token.uid kw = dict(access_token=token.access_token, expires_in=token.expires_in) # check for update: if 0 == db.update("user", where="uid=$uid", vars=dict(uid=uid), **kw): # create user: client.set_access_token(token.access_token, token.expires_in) user = client.get.users__show(uid=uid) kw["uid"] = uid kw["name"] = user.screen_name kw["gender"] = user.gender kw["province_code"] = user.province kw["city_code"] = user.city kw["image_url"] = user.profile_image_url db.insert("user", **kw) # make a cookie: web.setcookie("weibouser", _make_cookie(uid, token.access_token), int(token.expires_in - time.time())) raise web.found("/index")
def save_access_token_to_db(self, uid, token, secret): kw = dict(oauth_token=token, oauth_token_secret=secret, join_time=str(datetime.now())) # check for update: if 0==db.update('account_info', where='user_id=$user_id', vars=dict(user_id=uid), **kw): db.insert('account_info', user_id=uid, oauth_token=token, oauth_token_secret=secret)
def add_city(): i = web.input() db.insert("city", name=i.name, alias=i.alias, yahoo_code=i.yahoo_code, weibo_code=i.weibo_code) raise web.found("/list_city")