コード例 #1
0
ファイル: publish.py プロジェクト: ZrongH/wolfware4
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())
コード例 #2
0
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())
コード例 #3
0
ファイル: getAccess.py プロジェクト: Lhfcws/ai_hw
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]
コード例 #4
0
ファイル: ClientFactory.py プロジェクト: B-Rich/WSpi
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
コード例 #5
0
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)
コード例 #6
0
ファイル: sina.py プロジェクト: wonleing/live-shooter
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))
コード例 #7
0
    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()
コード例 #8
0
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
コード例 #9
0
ファイル: weibo.py プロジェクト: xiangqianzsh/weibo_robot
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:]
コード例 #10
0
ファイル: views.py プロジェクト: YangZhuoze/Zzydaily
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)
コード例 #11
0
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:
コード例 #12
0
ファイル: test.py プロジェクト: kunlbc/test
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"))
コード例 #13
0
 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
コード例 #14
0
ファイル: views.py プロジェクト: zhangshijie/FreeJoin
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)
コード例 #15
0
ファイル: weibo_post.py プロジェクト: mofhu/pkuairquality
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)
コード例 #16
0
ファイル: LoginWindow.py プロジェクト: lxg19880914/WeCase
    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
コード例 #17
0
ファイル: admin.py プロジェクト: RTNelo/dev_blog
    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
                  )
コード例 #18
0
ファイル: lib.py プロジェクト: cloudaice/weibo-terminal
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
コード例 #19
0
ファイル: apis.py プロジェクト: michaelliao/shi-ci
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())
コード例 #20
0
ファイル: oauth2.py プロジェクト: sexroute/Python
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:]
コード例 #21
0
ファイル: oauth2.py プロジェクト: sexroute/Python
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
コード例 #22
0
ファイル: weibo.py プロジェクト: 505555998/weibo_robot
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:]
コード例 #23
0
ファイル: client.py プロジェクト: skymoney/Sina_Weibo_Master
 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
コード例 #24
0
 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
コード例 #25
0
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
コード例 #26
0
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)
コード例 #27
0
ファイル: sinat_helper.py プロジェクト: qhm123/icolor
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
コード例 #28
0
ファイル: sina.py プロジェクト: liutaihua/cp2cc
 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)
コード例 #29
0
ファイル: views.py プロジェクト: jtr109/ToDo
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)
コード例 #30
0
ファイル: sina.py プロジェクト: kevein/twapi
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))
コード例 #31
0
ファイル: sina.py プロジェクト: duoduo3369/django-sina-login
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)
コード例 #32
0
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
コード例 #33
0
ファイル: test2.py プロジェクト: kunlbc/test
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'))
コード例 #34
0
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)
コード例 #35
0
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()
コード例 #36
0
ファイル: all2sina.py プロジェクト: ElmerNing/autoweibo
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
コード例 #37
0
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)
コード例 #38
0
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)
コード例 #39
0
ファイル: views.py プロジェクト: Narcissist1/myblog
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)
コード例 #40
0
ファイル: models.py プロジェクト: bitwolaiye/FindRobot
 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
コード例 #41
0
ファイル: testWeibo.py プロジェクト: maweis1981/FreeLunch
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
コード例 #42
0
ファイル: client.py プロジェクト: linzhi/weibo-spider
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
コード例 #43
0
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)
コード例 #44
0
ファイル: weibo_handler.py プロジェクト: cash2one/gongzhuhao
    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)  # 直接跳转到验证界面
コード例 #45
0
ファイル: weiboAPI.py プロジェクト: heqiang1992/project
    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()
コード例 #46
0
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())
コード例 #47
0
ファイル: testWeibo.py プロジェクト: maweis1981/FreeLunch
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
コード例 #48
0
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
コード例 #49
0
 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
コード例 #50
0
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)
コード例 #51
0
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
コード例 #52
0
 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
     })
コード例 #53
0
ファイル: Server.py プロジェクト: john-shine/WeMining
 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)
コード例 #54
0
 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
     })
コード例 #55
0
ファイル: main.py プロジェクト: qiaoyunrui/weibo_cli
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
コード例 #56
0
 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
コード例 #57
0
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
コード例 #58
0
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
コード例 #59
0
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