def get_token() : #my weibo account os.environ['REMOTE_ADDR'] = '103.8.222.56' #get code auth = OAuthHandler(consumer_key,consumer_secret,consumer_url) params = urllib.urlencode({'action':'submit','withOfficalFlag':'0','ticket':'','isLoginSina':'', \ 'response_type':'code', \ 'regCallback':'', \ 'redirect_uri':consumer_url, \ 'client_id':consumer_key, \ 'state':'', \ 'from':'', \ 'userId':username, \ 'passwd':password, \ }) authPage = urllib2.urlopen(auth.get_authorization_url()) login_url = 'https://api.weibo.com/oauth2/authorize' request = urllib2.Request(login_url, params) request.add_header("Referer", auth.get_authorization_url()) codePage = urllib2.urlopen(request) code = codePage.geturl().split('code%3D')[1] #use code exchange token tokenData = 'client_id='+consumer_key+'&client_secret='+consumer_secret+'&grant_type=authorization_code&redirect_uri='+consumer_url+'&code='+code request = urllib2.Request("https://api.weibo.com/oauth2/access_token", tokenData) tokenPage = urllib2.urlopen(request) tokenJson = json.loads(tokenPage.read()) token = tokenJson['access_token'] db.update('token',where="id =$id", vars={'id':'weibo'}, token = token)
def login(): session['login_ok_url'] = get_referer() callback = 'http://appstack.sinaapp.com/login_callback' auth = OAuthHandler(consumer_key, consumer_secret, callback) # Get request token and login url from the provider url = auth.get_authorization_url() session['oauth_request_token'] = auth.request_token # Redirect user to login return redirect(url)
def login_with_sinaid(request): callback = request.build_absolute_uri('/check_user_login_sina') auth = OAuthHandler(consumer_key=consumer_key, consumer_secret=consumer_secret , callback=callback) try: authorization_url = auth.get_authorization_url() except WeibopError: request.session['errormessage'] = ugettext('Connect sina twitter fail, please retry') return login(request) request_token = auth.request_token request.session['oauth_request_token'] = request_token return HttpResponseRedirect(authorization_url)
def login_with_sinaid(request): callback = request.build_absolute_uri('/check_user_login_sina') auth = OAuthHandler(consumer_key=consumer_key, consumer_secret=consumer_secret, callback=callback) try: authorization_url = auth.get_authorization_url() except WeibopError: request.session['errormessage'] = ugettext( 'Connect sina twitter fail, please retry') return login(request) request_token = auth.request_token request.session['oauth_request_token'] = request_token return HttpResponseRedirect(authorization_url)
def main(): c = get_conf() o = OAuthHandler(c['consumer_key'], c['consumer_secret']) c['authorization_url'] = o.get_authorization_url() c['request_token'] = o.request_token print c['authorization_url'] verifier = raw_input('click the url above, then input the verifier: ') verifier = verifier.strip() c['verifier'] = verifier try: access_token = o.get_access_token(verifier) c['access_token_key'] = access_token.key c['access_token_secret'] = access_token.secret c['access_token'] = access_token.to_string() set_conf(c) print 'oauth succeeded' except: print 'oauth failed'
def get_authorization_url(user_name,server_user_name,server_user_pix='timger',server='sina',callback=None,consumer_key=_conf.consumer_key,consumer_secret=_conf.consumer_secret,): import sys sys.path.append(os.path.join(DIR_PATH,'../')) from db import * o = OAuthHandler(consumer_key, consumer_secret,callback=callback) authorization_url = o.get_authorization_url() request_token = o.request_token print request_token sdb = TWDBS(consumer_key=consumer_key,consumer_secret=consumer_secret,request_token=str(request_token)) session.add(sdb) session.commit() session.close() res = {} res['request_token'] = request_token res['authorization_url'] = authorization_url print authorization_url return res
#!/usr/bin/python #-*- coding: utf-8 -*- #------------------------------------------------------- #Var #------------------------------------------------------- ###AppInfo APP_KEY = "3786122414" APP_SECRET = "3f0d9e2f3ae7f117755971dc358f7b5b" #------------------------------------------------------- from weibopy import OAuthHandler, oauth, WeibopError ###获得应用的token auth = OAuthHandler(APP_KEY, APP_SECRET) ###获得用户OAuth登录的url auth_url = auth.get_authorization_url() print "Please Auth: "+auth_url verifier = raw_input("PIN: ").strip() access_token = auth.get_access_token(verifier) ###获得access_token ###发布微博 api = API(auth) status = api.update_status(status="Hello World") ###获得access_token后,以后便可以通过 ###auth.set_access_token(access_token.key, access_token.secret) ###完成授权.