Ejemplo n.º 1
0
 def GET(self):
     # 获取URL参数:
     oauth_token = web.input().get('oauth_token')
     oauth_verifier = web.input().get('oauth_verifier')
     # 使用oauth_token查表获取上一步保存的oauth_token_secret:
     oauth_token_secret = cache.get(oauth_token.encode('ascii'))
     # 构造完整的request token:
     request_token = OAuthToken(oauth_token, oauth_token_secret, oauth_verifier)
     # 用request token获取access token:
     client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, token=request_token)
     access_token = client.get_access_token()
     # 通过access token调用一个API获取用户uid信息:
     client = APIClient(APP_KEY, APP_SECRET, access_token)
     account = client.account__verify_credentials()
     uid = str(account.id)
     # 保存uid和access token以后使用:
     self.save_access_token_to_db(uid, access_token.oauth_token, access_token.oauth_token_secret) 
     try:
         # 发表一条授权成功的微博
         client.post.statuses__update(status="本微博帐号已成为一个基于OPENTree0应用的树洞,欢迎大家来此吐槽生活。树洞的使用方法请见OPENTree0主页:http://opentree0.sinaapp.com/")
     except HTTPError:
         logging.error("重复发送微博。")
     raise web.found('/success')