def get(self): verifier = str(self.get_argument('oauth_verifier', None)) auth_client = _oauth() # 设置之前保存在session的request_token request_token = self.session['oauth_request_token'] del self.session['oauth_request_token'] self.session.save() auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) current_user = auth_client.get_username() api = API(auth_client) self.session['me'] = api.me() self.session['username'] = current_user session_mc_client.set(str(api.me().id), self.session.session_id) self.set_cookie('sid', self.session.session_id) self.set_cookie('uid', str(api.me().id)) # 保存access_token,以后访问只需使用access_token即可 self.session['oauth_access_token'] = access_token self.session['platform'] = 'weibo' self.session.save() # 跳转回最初登录前的页面 back_to_url = self.session.get('login_back_to_url', '/') return self.redirect(back_to_url)
def get(self): verifier = str(self.get_argument('oauth_verifier', None)) auth_client = _oauth() # 设置之前保存在session的request_token request_token = self.session['oauth_request_token'] del self.session['oauth_request_token'] self.session.save() auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) current_user = auth_client.get_username() api = API(auth_client) # save the user info to database info = api.me() user, created = User.objects.get_or_create(weibo_id=str(info.id)) if created: user.avatar = info.profile_image_url user.name = info.screen_name user.save() self.session['me'] = info self.session['username'] = current_user # 保存access_token,以后访问只需使用access_token即可 self.session['oauth_access_token'] = access_token self.session.save() # 跳转回最初登录前的页面 back_to_url = self.session.get('login_back_to_url', '/') return self.redirect(back_to_url)
def showstatus(request): logined = False if request.session.get('oauth_access_token'): logined = True access_token = request.session['oauth_access_token'] else: return render_to_response('wb/status.html', locals()) access_token = request.session['oauth_access_token'] auth = OAuthHandler(SINA_APP_KEY, SINA_APP_SECRET) auth.set_access_token(access_token.key, access_token.secret) api = API(auth) try: gender = "male" if api.me().gender == "m" else "female" id = api.me().id screen_name = api.me().screen_name description = api.me().description location = api.me().location profile_image_url = api.me().profile_image_url except : return render_to_response('wb/status.html', locals()) return render_to_response('wb/status.html', locals())
def showstatus(request): logined = False if request.session.get('oauth_access_token'): logined = True access_token = request.session['oauth_access_token'] else: return render_to_response('wb/status.html', locals()) access_token = request.session['oauth_access_token'] auth = OAuthHandler(SINA_APP_KEY, SINA_APP_SECRET) auth.set_access_token(access_token.key, access_token.secret) api = API(auth) try: gender = "male" if api.me().gender == "m" else "female" id = api.me().id screen_name = api.me().screen_name description = api.me().description location = api.me().location profile_image_url = api.me().profile_image_url except: return render_to_response('wb/status.html', locals()) return render_to_response('wb/status.html', locals())
def test_rp(request): if request.method == 'POST': success = "" access_token = request.session['oauth_access_token'] auth = OAuthHandler(SINA_APP_KEY, SINA_APP_SECRET) auth.set_access_token(access_token.key, access_token.secret) api = API(auth) try: username = api.me().screen_name number = int(md5.md5(username.encode('utf-8')).hexdigest(), 16) rp = number % 100 rating = rp2rating(rp) api.update_status(u"%s, 你的人品是 %d, %s" %(username, rp, rating)) success = u"成功发布" except: raise success = u"失败" return HttpResponseRedirect('/status') return HttpResponseRedirect('/status')
def test_rp(request): if request.method == 'POST': success = "" access_token = request.session['oauth_access_token'] auth = OAuthHandler(SINA_APP_KEY, SINA_APP_SECRET) auth.set_access_token(access_token.key, access_token.secret) api = API(auth) try: username = api.me().screen_name number = int(md5.md5(username.encode('utf-8')).hexdigest(), 16) rp = number % 100 rating = rp2rating(rp) api.update_status(u"%s, 你的人品是 %d, %s" % (username, rp, rating)) success = u"成功发布" except: raise success = u"失败" return HttpResponseRedirect('/status') return HttpResponseRedirect('/status')
def get(self): verifier = str(self.get_argument('oauth_verifier', None)) auth_client = _oauth() # 设置之前保存在session的request_token request_token = self.session['oauth_request_token'] del self.session['oauth_request_token'] self.session.save() auth_client.set_request_token(request_token.key, request_token.secret) access_token = auth_client.get_access_token(verifier) current_user = auth_client.get_username() api = API(auth_client) self.session['me'] = api.me() self.session['username'] = current_user # 保存access_token,以后访问只需使用access_token即可 self.session['oauth_access_token'] = access_token self.session.save() # 跳转回最初登录前的页面 back_to_url = self.session.get('login_back_to_url', '/') return self.redirect(back_to_url)