def publish(msg): # print msg #print url code_obj = Code.objects.first() client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) try: if code_obj and code_obj.access_token and code_obj.expires_in: pass else: if not code_obj: return redirect(client.get_authorize_url()) r = client.request_access_token(code_obj.code) code_obj.access_token = r.access_token # 新浪返回的token,类似abc123xyz456 code_obj.expires_in = r.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4 code_obj.save() access_token = code_obj.access_token expires_in = code_obj.expires_in assert access_token print expires_in ### TODO: 在此可保存access token print "access_token", access_token print 'expires_in', expires_in client.set_access_token(access_token, expires_in) # print client.get.statuses__user_timeline() print client.post.statuses__update(status=msg) except: return redirect(client.get_authorize_url())
def getAccess(): ACCOUNT = "*****@*****.**" PASSWORD = "******" # get configure from file accessFile = open( path+"/accessKey.conf", "r" ) values = accessFile.readlines() accessFile.close() accessKeys = [] for value in values: accessKeys.append( value.strip() ) # get the weibo authorization try: APP_KEY = accessKeys[ 0 ] APP_SECRET = accessKeys[ 1 ] CALLBACK_URL = accessKeys[ 2 ] client = APIClient( app_key = APP_KEY, app_secret = APP_SECRET, redirect_uri = CALLBACK_URL ) # webbrowser.open_new( client.get_authorize_url() ) url = client.get_authorize_url() conn = httplib.HTTPSConnection('api.weibo.com') postdata = urllib.urlencode({'client_id':APP_KEY,'response_type':'code','redirect_uri':CALLBACK_URL,'action':'submit','userId':ACCOUNT,'passwd':PASSWORD,'isLoginSina':0,'from':'','regCallback':'','state':'','ticket':'','withOfficalFlag':0}) conn.request('POST','/oauth2/authorize',postdata,{'Referer':url,'Content-Type': 'application/x-www-form-urlencoded'}) res = conn.getresponse() location = res.getheader('location') code = location.split('=')[1] conn.close() r = client.request_access_token( code ) client.set_access_token( r.access_token, r.expires_in ) return client except: print sys.exc_info()[0], sys.exc_info()[1]
def GetClient(_key, _secret, _redirect_uri, userName, passWord): client = APIClient(app_key = _key, app_secret = _secret, redirect_uri = _redirect_uri) url = client.get_authorize_url() print "username:"******"password:"******"threads blocked for login now" #multi-threads synchronize theLock.acquire() webbrowser.open_new(url) code = raw_input() theLock.release() #sync finished print "lock released" tok_class = client.request_access_token(code) token = tok_class.access_token expires = tok_class.expires_in client.set_access_token(token, expires) return client
def weibo_login(request): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) auth_url = client.get_authorize_url() return HttpResponseRedirect(auth_url)
class Weibo: def __init__(self): self.client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) self.conn = httplib.HTTPSConnection('api.weibo.com') def auth(self, username, password): postdata = urllib.urlencode({'client_id':APP_KEY,'response_type':'code','redirect_uri':CALLBACK_URL,'action':'submit',\ 'userId':username,'passwd':password,'isLoginSina':0,'withOfficalFlag':0}) self.conn.request('POST','/oauth2/authorize',postdata,{'Referer':self.client.get_authorize_url(),\ 'Content-Type':'application/x-www-form-urlencoded'}) location = self.conn.getresponse().getheader('location') self.conn.close() if location: r = self.client.request_access_token(location.split('=')[1]) return (r.access_token, r.expires_in) else: return None def setToken(self, access_token, expires_in): self.client.set_access_token(access_token, expires_in) def post(self, text, image): return self.client.statuses.upload.post(status=text, pic=urllib.urlopen(image)) def profile(self): u = self.client.get.statuses__user_timeline().statuses[0].user return(u.screen_name, u.avatar_large) def getComment(self, mid): return self.client.comments.show.get(id=int(mid)) def addComment(self, newcomment, mid): return self.client.comments.create.post(comment=newcomment, id=int(mid))
def build_token(self): all_tokens = [] tmp = {} app_key = APP_KEY app_secret = APP_SECRET callback_url = CALLBACK_URL for i in range(len(app_key)): A_K = app_key[i] A_S = app_secret[i] C_U = callback_url client = APIClient(A_K, A_S, C_U) print 'authorize_url: ', client.get_authorize_url() code = raw_input('code: ') r = client.request_access_token(code) access_token = r.access_token # 新浪返回的token,类似abc123xyz456 expires_in = r.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4 tmp['APP_KEY'] = A_K tmp['APP_SECRET'] = A_S tmp['CALLBACK_URL'] = C_U tmp['token'] = access_token tmp['expires'] = expires_in all_tokens.append(tmp) tmp = {} f = file(self.token_file, 'w') json.dump(all_tokens, f) f.close()
def get_weibo_client(): APP_KEY = APP_KEY[0] APP_SECRET = APP_SECRET[0] CALLBACK_URL = CALLBACK_URL client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) print 'authorize_url: ', client.get_authorize_url() code = raw_input('code: ') client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) r = client.request_access_token(code) access_token = r.access_token # 新浪返回的token,类似abc123xyz456 expires_in = r.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4 print 'access_token: ', access_token print 'expires_in: ', expires_in # store in local f = file('token.json', 'w') token = dict(token=access_token, expires=expires_in) json.dump(token, f) f.close() client.set_access_token(access_token, expires_in) return client
def GetCode(userid, passwd): """获取用户code""" print 'Get the code...', client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) referer_url = client.get_authorize_url() postdata = { "action": "login", "client_id": APP_KEY, "redirect_uri": CALLBACK_URL, "userId": userid, "passwd": passwd, } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0", "Referer": referer_url, "Connection": "keep-alive" } req = urllib2.Request(url=AUTH_URL, data=urllib.urlencode(postdata), headers=headers) resp = urllib2.urlopen(req) print 'success!!!' return resp.geturl()[-32:]
def login(): client = APIClient( app_key = current_app.config['APP_KEY'], app_secret = current_app.config['APP_SECRET'], redirect_uri = current_app.config['CALLBACK_URL']) url = client.get_authorize_url() return redirect(url)
class ApiClient(): def __init__(self): self.APP_KEY = '1662499124' self.APP_SECRET = '2e2813ca656f7e5e802af260f22f97d0' self.CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' self.client = APIClient(app_key = self.APP_KEY, app_secret = self.APP_SECRET, redirect_uri = self.CALLBACK_URL) self.set_access_token() def set_access_token(self): '''登陆''' driver = webdriver.Chrome() driver.get(self.client.get_authorize_url()) username_element = driver.find_element_by_id('userId') username_element.clear() username_element.send_keys('*****') password_element = driver.find_element_by_id('passwd') password_element.send_keys('******') driver.find_element_by_class_name('oauth_login_form').submit() '''授权并解析得到code,这部分本来想继续用selenium操作浏览器,以自动获取access_token,但是这种方法太不稳定了,所幸手动获取''' try: WebDriverWait(driver, 10).until(EC.title_is(u'微博')) code = str(raw_input('Input the code in the current url : ')) except Exception,e: print e finally:
def event_func(): APP_KEY = "2218208544" APP_SECRET = "956ae245a2f62a11a9eca1d91fbda092" CALLBACK_URL = "http://cdgir.cumt.edu.cn/ShowCode.aspx" client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() print url webbrowser.open(url) code = raw_input("input the code:").strip() print code r = client.request_access_token(code) access_token = r.access_token expires_in = r.expires_in client.set_access_token(access_token, expires_in) poi_result = client.place.nearby.pois.get(lat="39.98435", long="116.30999") text = "" print poi_result.total_number for val in poi_result.pois: # for k, v in val.items(): # print ("%s : %s" % (k,v))这个是val这个dic的循环遍历 text += "%s\t%s\t%s\t%s\t%s\r\n" % (val.poiid, val.title, val.lon, val.lat, val.address) # 可参考api的json返回示例 # print text.encode('utf-8') # print text.encode('utf-8') open("poi.txt", "a").write(text.encode("utf-8"))
def weiboClient(self): APP_KEY='1257616669' APP_SECRET='b8d924e1b6aa10f0bbd4e7af6ed1bf19' CALLBACK_URL='https://api.weibo.com/oauth2/default.html' AUTH_URL='https://api.weibo.com/oauth2/authorize' USERID='' PASSWD='' client=APIClient(app_key=APP_KEY,app_secret=APP_SECRET,redirect_uri=CALLBACK_URL) referer_url=client.get_authorize_url() print "referer url is: %s" % referer_url cookies=urllib2.HTTPCookieProcessor() opener=urllib2.build_opener(cookies) urllib2.install_opener(opener) postdata={ "client_id":APP_KEY, "redirect_uri":CALLBACK_URL, "userId":USERID, "passwd":PASSWD, "isLoginSina":"0", "action":"submit", "response_type":"code", } headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0", "Host": "api.weibo.com", "Referer": referer_url } req=urllib2.Request(url=AUTH_URL,data=urllib.urlencode(postdata),headers=headers) try: resp=urllib2.urlopen(req) print "callback url is : %s" % resp.geturl() code=resp.geturl()[-32:] print "code is %s" % code except Exception, e: print e
def main(request): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() t = get_template('FreeJoinapp/index.html') html = t.render(Context({'WeiboUrl': url})) return HttpResponse(html)
def authorize(user_password, parameters): """Get Auth2.0 from weibo. """ # http://jas0n.me/2014/12/19/weibo_robot/ USERID = '*****@*****.**' #微博登陆邮箱 PASSWORD = user_password #微博登陆密码 client = APIClient(app_key=parameters['APP_KEY'], app_secret=parameters['APP_SECRET'], redirect_uri=parameters['CALLBACK_URL']) referer_url = client.get_authorize_url() # print('referer_url: %s' % referer_url) # 获取URL参数code: # https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A//frank-the-obscure.me/&response_type=code&client_id=1512985854 code = '0b9e70a77bae860c34c02fbffbfd8c00' # manually got code #client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, # redirect_uri=CALLBACK_URL) r = client.request_access_token(code) access_token = r.access_token # 新浪返回的token,类似abc123xyz456 expires_in = r.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4 print('token:', access_token) print('expires in', expires_in) client.set_access_token(access_token, expires_in)
def authorize(self, username, password): try: client = APIClient(app_key=const.APP_KEY, app_secret=const.APP_SECRET, redirect_uri=const.CALLBACK_URL) # Step 1: Get the authorize url from Sina authorize_url = client.get_authorize_url() # Step 2: Send the authorize info to Sina and get the authorize_code authorize_code = authorize(authorize_url, username, password) if not authorize_code: self.loginReturn.emit(self.PASSWORD_ERROR) return # Step 3: Get the access token by authorize_code r = client.request_access_token(authorize_code) # Step 4: Setup the access token of SDK client.set_access_token(r.access_token, r.expires_in) const.client = client self.loginReturn.emit(self.SUCCESS) return except: self.loginReturn.emit(self.NETWORK_ERROR) return
def get(self): # OAth2 for douban KEY = conf['douban_app_key'] SECRET = conf['douban_app_secret'] CALLBACK = conf['url'] + '/dback' SCOPE = 'douban_basic_common,community_basic_user,community_basic_note' client = DoubanClient(KEY, SECRET, CALLBACK, SCOPE) douban_login = client.authorize_url # OAth2 for sina_weibo APP_KEY = conf['weibo_app_key'] APP_SECRET = conf['weibo_app_secret'] CALLBACK_URL = conf['url'] + '/wback' weibo_client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) weibo_login = weibo_client.get_authorize_url() # statistics diary_count = Diary.get_diary_count() last_diary = Diary.get_last_diary() first_diary = Diary.get_first_diary() comment_count = Comment.get_comment_count() usr = tornado.escape.xhtml_escape(self.current_user) site_start = Admin.find_by_username(usr).get('site_start') self.render('Admin/dashboard.html', douban_login=douban_login, diary_count=diary_count, last_diary=last_diary, first_diary=first_diary, site_start=site_start, comment_count=comment_count, weibo_login=weibo_login )
def Weibo(USERID, PASSWD): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) referer_url = client.get_authorize_url() #print "referer url is : %s" % referer_url cookies = urllib2.HTTPCookieProcessor() opener = urllib2.build_opener(cookies) urllib2.install_opener(opener) postdata = {"client_id": APP_KEY, "redirect_uri": CALLBACK_URL, "userId": USERID, "passwd": PASSWD, "isLoginSina": "0", "action": "submit", "response_type": "code", } headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0", "Host": "api.weibo.com", "Referer": referer_url } req = urllib2.Request(url = AUTH_URL, data = urllib.urlencode(postdata), headers = headers ) try: resp = urllib2.urlopen(req) #print "callback url is : %s" % resp.geturl() code = resp.geturl()[-32:] except APIError, e: print e
def auth_signin(): ''' Redirect to sina sign in page. ''' ctx.response.set_cookie(COOKIE_REDIRECT, _get_referer()) client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK) raise seeother(client.get_authorize_url())
def GetCode(userid,passwd): client = APIClient(app_key = APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) referer_url = client.get_authorize_url() postdata = { "action": "login", "client_id": APP_KEY, "redirect_uri":CALLBACK_URL, "userId": userid, "passwd": passwd, } headers = { "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36", "Referer":referer_url, "Connection":"keep-alive" } req = urllib2.Request( url = AUTH_URL, data = urllib.urlencode(postdata), headers = headers ) resp = urllib2.urlopen(req) print resp.read() return resp.geturl()[-32:]
def getAccessToken(): client = APIClient(app_key=_LocalVar.APP_KEY, app_secret=_LocalVar.APP_SECRET, redirect_uri=_LocalVar.CALLBACK_URL) referer_url = client.get_authorize_url() postdata = { "action": "login", "client_id": _LocalVar.APP_KEY, "redirect_uri":_LocalVar.CALLBACK_URL, "userId": _LocalVar.name, "passwd": _LocalVar.password, } headers = { "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36", "Referer":referer_url, "Connection":"keep-alive" } req = urllib2.Request( url = _LocalVar.AUTH_URL, data = urllib.urlencode(postdata), headers = headers ) print referer_url resp = urllib2.urlopen(req) code = resp.geturl()[-32:] r = client.request_access_token(code) access_token = r.access_token expires_in = r.expires_in # urllib2.urlopen('http://weibo.com/u/2490013033').read().decode('gbk') return access_token
def GetCode(userid, passwd): """获取用户code""" print 'Get the code...', client = APIClient(app_key = APP_KEY, app_secret = APP_SECRET, redirect_uri = CALLBACK_URL) referer_url = client.get_authorize_url() postdata = { "action": "login", "client_id": APP_KEY, "redirect_uri":CALLBACK_URL, "userId": userid, "passwd": passwd, } headers = { "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0", "Referer":referer_url, "Connection":"keep-alive" } req = urllib2.Request( url = AUTH_URL, data = urllib.urlencode(postdata), headers = headers ) resp = urllib2.urlopen(req) print 'success!!!' return resp.geturl()[-32:]
def access_client(self,app_index): #定义供替换的APP Key和Secret APP_KEYS_SECRETS=config.APP_KEYS_SECRETS ##随机取出一个app index #current_index = int(random.random()*100 % len(APP_KEYS_SECRETS)) APP_KEY= APP_KEYS_SECRETS[app_index][0] #app key APP_SECRET = APP_KEYS_SECRETS[app_index][1] # app secret CALLBACK_URL = config.CALLBACK_URI # callback url username=config.ACCOUNT1 password=config.PASSWORD1 client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() conn = httplib.HTTPSConnection('api.weibo.com') postdata = urllib.urlencode({'client_id':APP_KEY,'response_type':'code','redirect_uri':CALLBACK_URL,'action':'submit','userId':username,'passwd':password,'isLoginSina':0,'from':'','regCallback':'','state':'','ticket':'','withOfficalFlag':0}) conn.request('POST','/oauth2/authorize',postdata,{'Referer':url, 'Content-Type': 'application/x-www-form-urlencoded'}) res = conn.getresponse() page = res.read() conn.close()##拿新浪给的code code = urlparse.parse_qs(urlparse.urlparse(res.msg['location']).query)['code'][0] token = client.request_access_token(code) access_token = token.access_token # 新浪返回的token,类似abc123xyz456 expires_in = token.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4 # TODO: 在此可保存access token client.set_access_token(access_token, expires_in)##生成token return client
def accessToken_get(self): APP_KEY = '1690375172' APP_SECRET = 'e09cff8b33bd34426831fbf63caf00ca' CALLBACK_URL = 'http://weibo.com/itgeeks' ACCOUNT = '*****@*****.**' PASSWORD = '******' #for getting the authorize url client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() print url conn = httplib.HTTPSConnection('api.weibo.com') postdata = urllib.urlencode({'client_id':APP_KEY,'response_type':'code','redirect_uri':CALLBACK_URL,'action':'submit','userId':ACCOUNT, 'passwd':PASSWORD,'isLoginSina':0,'from':'','regCallback':'','state':'','ticket':'','withOfficalFlag':0}) conn.request('POST','/oauth2/authorize',postdata,{'Referer':url,'Content-Type': 'application/x-www-form-urlencoded'}) res = conn.getresponse() print 'headers===========',res.getheaders() print 'msg===========',res.msg print 'status===========',res.status print 'reason===========',res.reason print 'version===========',res.version location = res.getheader('location') print location code = location.split('=')[1] conn.close() r = client.request_access_token(code) access_token = r.access_token # The token return by sina expires_in = r.expires_in print "access_token=" ,access_token, "expires_in=" ,expires_in #save the access token client.set_access_token(access_token, expires_in) return client
def get_code(): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() #print "referer url is : %s" % url cookies = urllib2.HTTPCookieProcessor() opener = urllib2.build_opener(cookies) urllib2.install_opener(opener) postdata = { "client_id": APP_KEY, "redirect_uri": CALLBACK_URL, "userId": USERID, "passwd": PASSWD, "isLoginSina": "0", "action": "submit", "response_type": "code" } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0", "Host": "api.weibo.com", "Referer": url } req = urllib2.Request(url=url, data=urllib.urlencode(postdata), headers=headers) resp = urllib2.urlopen(req) #print "callback url is : %s" % resp.geturl() #print "code is : %s" % resp.geturl()[-32:] code = resp.geturl()[-32:] return code
def weiboLogin(request): """微博登录""" client = APIClient(app_key=settings.APP_KEY, app_secret=settings.APP_SERCET, redirect_uri=settings.CALLBACK_URL) url = client.get_authorize_url() return HttpResponseRedirect(url)
class WebOAuthHandler(): """继承自OAuthHandler,提供Web应用方法。""" def __init__(self, callback_url, access_token=None, expires_in=None): self.client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=callback_url) if access_token is not None: logging.info("access_token: %s, expire: %s" % (access_token, expires_in)) self.client.set_access_token(str(access_token), str(expires_in)) def get_authorize_url(self): return self.client.get_authorize_url() def update(self, message): """添加一条新微博信息""" message = message.encode("utf-8") self.client.post.statuses__update(status=message) def upload(self, filename, message): message = message.encode("utf-8") f = open(filename) self.client.upload.statuses__upload(status=message, pic=f) f.close() def upload_color(self, message, color_value): """上传颜色图片微博""" message = message.encode("utf-8") data = generate_image_helper.generate_image(color_value) logging.info('status: %s, data: %s' % (message, data)) self.client.upload.statuses__upload(status=message, pic=data) def get_user(self, uid): user = self.client.get.users__show(uid=uid) return user
def get(self): userid = self.get_current_userid() backurl = self.get_argument('backurl', None) self.set_cookie('backurl'+str(userid), backurl) client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() return self.redirect(url)
def weibo_auth(): app_key = current_app.config['APP_KEY'] app_secret = current_app.config['APP_SECRET'] callback_url = current_app.config['CALLBACK_URL'] client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url) url = client.get_authorize_url() return redirect(url)
class Sina: def __init__(self, app_key, app_secret, redirect_uri): self.client = APIClient(app_key, app_secret, redirect_uri) if not os.path.exists("./sinadb"): self.request_url = self.client.get_authorize_url() print self.request_url code = raw_input('waiting code:') f = open("./sinadb", 'w') f.write(str(code)) r = self.client.request_access_token(code) access_token = r.access_token f.write(str(access_token)) expires_in = r.expires_in f.write(str(expires_in)) f.close() else: f = open("./sinadb", 'r') code = f.readline().replace("\n",'') access_token = f.readline().replace("\n",'') expires_in = f.readline().replace("\n",'') self.client.set_access_token(access_token, expires_in) def twite(self): input_status=raw_input('STATUS: ') if input_status == "quit": return -1 pic_path=raw_input('PICTURE: ') if not pic_path: self.client.post.statuses__update(status=input_status) else: self.client.upload.statuses__upload(status=input_status, pic=open(pic_path))
def index(request): """ 跳转到验证页面 """ client = APIClient(app_key=APP_KEY,app_secret=APP_SECRET,redirect_uri=CALLBACK_URL) auth_url = client.get_authorize_url() return HttpResponseRedirect(auth_url)
def get_code(username, password): client = APIClient(app_key = APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) referer_url = client.get_authorize_url() conn = httplib.HTTPSConnection('api.weibo.com') postdata = urllib.urlencode({"action": "login", 'display':'default', 'withOfficalFlag':0, 'quick_auth':'null', 'withOfficalAccount':'', 'scope':'', 'ticket':'ST-NTgxMjEyMDgyMA==-1451982449-gz-7509E3BB4C2DC05243A15BAE7C54D3A4', 'isLoginSina':'', 'response_type':'code', 'regCallback':'https%3A%2F%2Fapi.weibo.com%2F2%2Foauth2%2Fauthorize%3Fclient_id%3D1163934014%26response_type%3Dcode%26display%3Ddefault%26redirect_uri%3Dhttps%253A%252F%252Fapi.weibo.com%252Foauth2%252Fdefault.html%26from%3D%26with_cookie%3D', 'redirect_uri':CALLBACK_URL, 'client_id':APP_KEY, 'appkey62':'1SgvpQ', 'state':'', 'verifyToken':'null', 'from':'', 'switchLogin':0, 'userId':username, 'passwd':password, 'isLoginSina':0, }) conn.request('POST','/oauth2/authorize',postdata,{'Referer':referer_url, 'Content-Type': 'application/x-www-form-urlencoded'}) res = conn.getresponse() page = res.read() #print 'headers===========',res.getheaders() print 'msg===========',res.msg print 'status===========',res.status print 'reason===========',res.reason print 'version===========',res.version
def event_func(): APP_KEY='2218208544' APP_SECRET='956ae245a2f62a11a9eca1d91fbda092' CALLBACK_URL='http://cdgir.cumt.edu.cn/ShowCode.aspx' client=APIClient(app_key=APP_KEY,app_secret=APP_SECRET,\ redirect_uri=CALLBACK_URL) url=client.get_authorize_url() print url webbrowser.open(url) code=raw_input("input the code:").strip() print code r=client.request_access_token(code); access_token=r.access_token expires_in=r.expires_in client.set_access_token(access_token,expires_in) val=client.place.pois.show.get(poiid='B2094757D06FA3FD4499') text="%s\t%s\t%s\t%s\r\n" % (val.title,val.lon,val.lat,val.address) #print poi_result.total_number #for val in poi_result: #for k, v in val.items(): #print ("%s : %s" % (k,v))这个是val这个dic的循环遍历 #text+="%s\t%s\t%s\t%s\r\n" % (val.title,val.lon,val.lat,val.address)#可参考api的json返回示例 print text #print text.encode('utf-8') open('log.txt','a').write(text.encode('utf-8'))
def login_weibo(): callbackUrl = request.args.get('next', CALLBACK_URL) client_ = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=callbackUrl) url = client_.get_authorize_url() print url return redirect(url)
def auto_login(): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() web_conn = urllib.urlopen(url) print web_conn.info() print web_conn.read()
def get_auth_client(): """get a auth weibo api client""" client = APIClient(app_key=conf.APP_KEY, app_secret=conf.APP_SECRET, redirect_uri=conf.CALLBACK_URL) url = client.get_authorize_url() code = get_code(url) r = client.request_access_token(code) client.set_access_token(r.access_token, r.expires_in) return client
def login_weibo(): client = APIClient(app_key=current_app.config["APP_KEY"], app_secret=current_app.config["APP_SECRET"], redirect_uri=request.host_url + url_for(".weibo_callback")) url = client.get_authorize_url() return redirect(url)
def weiboLogin(request): # weibo模块的APIClient是进行授权、API操作的类,先定义一个该类对象,传入参数为APP_KEY, APP_SECRET, CALL_BACK client = APIClient(APP_KEY, APP_SECRET, CALLBACK_URL) # 获取该应用(APP_KEY是唯一的)提供给用户进行授权的url auth_url = client.get_authorize_url() # 打印出用户进行授权的url,将该url拷贝到浏览器中,服务器将会返回一个url,该url中包含一个code字段(如图1所示) # print ("auth_url : " + auth_url) return redirect(auth_url)
def Signin_weibo(self): APP_KEY = '3328471193' APP_SECRET = '08c64d5a6a0e1caee7c2a0a8ef94eeb3' CALLBACK_URL = 'http://127.0.0.1:8000/myself/' client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() return HttpResponseRedirect(url)
def test(cls): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() r = client.statuses.user_timeline.get(uid=1062004271, source=APP_KEY, access_token=APP_ACCESS_TOKEN, page=2) for st in r.statuses: if st.has_key('original_pic'): print st.text print st.original_pic
def main(): APP_KEY = '3331857532' # app key APP_SECRET = '0a965b08dd9754165e5fa98348e15959' # app secret CALLBACK_URL = 'http://maweis.com/callback' # callback url client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() print url
class Client: ''' spider client ''' APP_KEY = '3016018478' APP_SECRET = 'befe47ad6ef665e79fc444af1e60c31b' CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' AUTH_URL = 'https://api.weibo.com/oauth2/authorize' USEID = '*****@*****.**' PASSWD = '8306656' def __init__(self): self.client = APIClient(app_key=self.APP_KEY, app_secret=self.APP_SECRET, redirect_uri=self.CALLBACK_URL) def set_client(self): ref_url = self.client.get_authorize_url() cookies = urllib2.HTTPCookieProcessor() opener = urllib2.build_opener(cookies) urllib2.install_opener(opener) post_data = { "client_id": self.APP_KEY, "redirect_uri": self.CALLBACK_URL, "userId": self.USEID, "passwd": self.PASSWD, "isLogSina": "0", "action": "submit", "response_type": "code" } headers = { "User-Agent": "Mozilla/17.0", "Host": "api.weibo.com", "Referer": ref_url } request = urllib2.Request(url = self.AUTH_URL, data = urllib.urlencode(post_data), headers = headers) try: response = urllib2.urlopen(request) code = response.geturl()[-32:] except: raise Exception("error") r = self.client.request_access_token(code) access_token = r.access_token expires_in = r.expires_in self.client.set_access_token(access_token, expires_in) return self.client
def index(request): """ 跳转到验证页面 """ client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) auth_url = client.get_authorize_url() return HttpResponseRedirect(auth_url)
def post(self): # 注意,这里是post client = APIClient(app_key=options.APP_KEY, app_secret=options.APP_SECRET, redirect_uri=options.CALLBACK_URL) url = client.get_authorize_url() # self.write('<a href="' + url +'">click</a>') # 用户点击链接后跳转到验证界面 self.redirect(url) # 直接跳转到验证界面
def authorization(self, **kwargs): APP_KEY = kwargs.get("APP_KEY") APP_SECRET = kwargs.get("APP_SECRET") CALLBACK_URL = kwargs.get("CALLBACK_URL") USER = kwargs.get("USER") PWD = kwargs.get("PWD") client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get(url) time.sleep(5) driver.find_element_by_id("userId").send_keys(USER) ActionChains(driver).double_click( driver.find_element(by=By.XPATH, value="/html/body/label")).perform() for i in PWD: pyautogui.hotkey(i) time.sleep(2) dis = driver.find_element_by_xpath( "//*[@id=\"outer\"]/div/div[2]/form/div/div[1]/div[1]/p[3]" ).get_attribute("style") if not dis == 'display: none;': ActionChains(driver).double_click( driver.find_element( by=By.XPATH, value= "//*[@id=\"outer\"]/div/div[2]/form/div/div[1]/div[1]/p[3]/label" )).perform() print('输入输入验证码登录后再往控制台按回车键:') input() driver.find_element_by_xpath( "//*[@id=\"outer\"]/div/div[2]/form/div/div[2]/div/p/a[1]").click( ) time.sleep(1) try: driver.find_element_by_xpath( "//*[@id=\"outer\"]/div/div[2]/form/div/div[2]/div/p/a[1]" ).click() time.sleep(1) except: pass code = driver.current_url.split("code=")[-1] driver.minimize_window() print(code) r = client.request_access_token(code) print(r) self.access_token = r.access_token # 新浪(授权服务器)返回的token expires_in = r.expires_in client.set_access_token(self.access_token, expires_in) self.client = client driver.close()
def Get_Oauth2Code(self): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) url = client.get_authorize_url() webbrowser.open_new(url) self.url = url self.code = input("复制粘贴code,并按回车确认。") self.client = client return
def get_access_token(): print "getgetgetget" app_key = '2375582409' app_secret = '30efe65a663641a1c5b75f1f32063892' callback_url = 'https://api.weibo.com/oauth2/default.html' client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url) # 获取授权页面网址 auth_url = client.get_authorize_url() return auth_url
def get(self, request): # 实例化微博对象 oauth_sina = APIClient(app_key=settings.SINA_APP_KEY, app_secret=settings.SINA_APP_SECRET, redirect_uri=settings.SINA_REDIRECT_URI) login_url = oauth_sina.get_authorize_url() return http.JsonResponse({ 'code': RETCODE.OK, 'errmsg': 'OK', 'login_url': login_url })
def GET(self): access_token = session.get('access_token',None) uid = session.get('uid',None) expires_in = session.get('expires_in',None) if access_token != None and uid!=None and expires_in!=None: client = APIClient(app_config.APP_KEY, app_secret=app_config.APP_SECRET, redirect_uri=app_config.CALLBACK_URL) client.set_access_token(access_token,expires_in) return showUserInfo(client,uid,expires_in) else: client = APIClient(app_key=app_config.APP_KEY, app_secret=app_config.APP_SECRET, redirect_uri=app_config.CALLBACK_URL) url = client.get_authorize_url() web.seeother(url)
def get(self, request): client = APIClient(app_key=settings.APP_KEY, app_secret=settings.APP_SECRET, redirect_uri=settings.SINA_REDIRECT_URI) # #2 获取登录界面 login_url = client.get_authorize_url() # # #3 返回页面 return http.JsonResponse({ 'code': RETCODE.OK, 'errmsg': 'OK', 'login_url': login_url })
def get_access_token(app_key, app_secret, callback_url): client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url) # 获取授权页面网址 auth_url = client.get_authorize_url() print auth_url code = raw_input("Input code:") r = client.request_access_token(code) local_access_token = r.access_token # token 过期的 UNIX 时间 local_expires_in = r.expires_in return local_access_token, local_expires_in
def getAuth(self): client = APIClient(app_key=self.app_key, app_secret=self.app_secret, redirect_uri=self.redirect_uri) # get the authenticate page url url = client.get_authorize_url() # retrieve the authenticate code automatically code = self.get_code(url) # get access token via the code r = client.request_access_token(code) access_token = r.access_token expires_in = r.expires_in # set token to the client client.set_access_token(access_token, expires_in) return client
def run(): #模拟登陆 APP_KEY = '1392181xxx' APP_SECRET = '612b0c6432a5f9cc7dxxxxxxx' CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' USERID = '用户微博账号' PASSWD = '用户微博密码' client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) referer_url = client.get_authorize_url() print "referer url is : %s" % referer_url cookies = urllib2.HTTPCookieProcessor() opener = urllib2.build_opener(cookies) urllib2.install_opener(opener) postdata = { "client_id": APP_KEY, "redirect_uri": CALLBACK_URL, "userId": USERID, "passwd": PASSWD, "isLoginSina": "0", "action": "submit", "response_type": "code", } headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0", "Host": "api.weibo.com", "Referer": referer_url } req = urllib2.Request(url=referer_url, data=urllib.urlencode(postdata), headers=headers) try: resp = urllib2.urlopen(req) print "callback url is : %s" % resp.geturl() print "code is : %s" % resp.geturl()[-32:] code = resp.geturl()[-32:] r = client.request_access_token(code) #将access_token和expire_in设置到client对象 client.set_access_token(r.access_token, r.expires_in) except Exception, e: print e
def get_access_token(app_key, app_secret, callback_url): client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url) auth_url = client.get_authorize_url() print auth_url code = raw_input("Input code:") r = client.request_access_token(code) access_token = r.access_token expires_in = r.expires_in print 'access_token:', access_token print 'expires_in:', expires_in return access_token, expires_in
def get_access_token(app_key, app_secret, callback_url): client = APIClient(app_key=app_key, app_secret=app_secret, redirect_uri=callback_url) # 获取授权页面网址 auth_url = client.get_authorize_url() print auth_url # 在浏览器中访问这个URL,会跳转到回调地址,回调地址后面跟着code,输入code code = raw_input("Input code:") r = client.request_access_token(code) access_token = r.access_token # token过期的UNIX时间 expires_in = r.expires_in print 'access_token:',access_token print 'expires_in:', expires_in return access_token, expires_in