Example #1
0
    def __init__(self, app_key, app_secret, call_back):
        '''
    初始化相关数据
    '''
        # 新浪api认证
        self.client = APIClient(app_key=app_key,
                                app_secret=app_secret,
                                redirect_uri=call_back)
        auth_url = self.client.get_authorize_url()
        webbrowser.open(auth_url)

        code = raw_input('Please input the code: ').strip()
        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)

        print 'INFO\t:Login success!'

        # MongoDB 数据库连接
        self.connection = Connection()
        self.db = self.connection.weibo
        self.user_collection = self.db.user_info
        self.friend_collection = self.db.user_friend
        self.follower_collection = self.db.user_follower
        print 'INFO\t:Connect to MongoDB  success!'
Example #2
0
 def get(self, request):
     # 得到回传的 code
     code = request.GET.get('code')
     oauth_sina = APIClient(app_key=settings.SINA_APP_KEY,
                            app_secret=settings.SINA_APP_SECRET,
                            redirect_uri=settings.SINA_REDIRECT_URI)
     try:
         # 根据 code 得到 tocken => {'access_token': '2.00IsO_OGJcPibD120f9a82d9R4xf1C', 'uid': '5708251100', 'expires_in': 1563044399, 'expires': 1563044399}
         tocken = oauth_sina.request_access_token(code=code)
     except Exception as e:
         logger.error(e)
         return http.HttpResponseServerError('Oauth2.0认证失败!')
     # 获取 uid
     uid = tocken.get('uid')
     # 判断 uid 是否绑定用户
     try:
         sina_user = OAuthSinaUser.objects.get(uid=uid)
     except Exception as e:
         # 查询失败说明未绑定,跳转到绑定页面
         # 将 uid 加密
         secret_uid = SecretOauth().dumps({'uid': uid})
         context = {'uid': secret_uid}
         return render(request, 'sina_callback.html', context)
     else:
         # 用户已绑定,则记录用户登陆状态
         user = sina_user.user
         login(request, user)
         # 跳转到首页
         response = redirect(reverse('contents:index'))
         # 设置 cookie
         response.set_cookie('username',
                             user.username,
                             max_age=3600 * 24 * 14)
         return response
Example #3
0
class WeiboAPIService(object):

    def __init__(self,appKey="1268278335",appSecret = "204dfdc6e50ea33fe282445f4f0a3b0e",token = "2.005jCfXFLIZp4Bd42d17a3dbC3fmaB"):
        self.appKey = appKey
        self.appSecret = appSecret
        self.token = token
        self.client = APIClient(self.appKey,self.appSecret, redirect_uri='')
        self.client.set_access_token(self.token,0)

    # 获取用户信息
    # 接口详情参考:http://open.weibo.com/wiki/2/users/show
    def getUserInfo(self,screen_name=None,uid=None):
        if screen_name is not None:
            data = self.client.users.show.get(screen_name = screen_name)
        elif uid is not None:
            data = self.client.users.show.get(uid = uid)
        else:
            raise Exception()
        return data

    # 获取某个位置周边的动态
    # 接口详情参考:http://open.weibo.com/wiki/2/place/nearby_timeline
    def getWeibo_nearbyline(self,lat,lon,starttime,endtime,range=3000,count=50,offset=0):
        data = self.client.place.nearby_timeline.get(lat=lat,long=lon,starttime=starttime,endtime=endtime,range=range,count=count,offset=offset)
        return data

    def get_weibo_user_timeline(self, uid, count=50):
        return self.client.place.user_timeline.get(uid=uid, count=count)

    def get_poi_timeline(self, poiid, count=50, page=1):
        return self.client.place.poi_timeline.get(poiid=poiid, count=count, page=page)

    def get_address_to_geo(self, address):
        return self.client.location.geo.address_to_geo.get(address=address)
Example #4
0
def access_client():
    client = APIClient(app_key='APP_KEY',
                       app_secret='APP_SECRET',
                       redirect_uri='CALLBACK_URL')
    client.set_access_token(
        'XXXXX', '12')  ##填入获得token,形式为2.00Hk5I5B3mz1gEda51bd5caewXXXYY
    return client
Example #5
0
class Send_Weibo():
    def __init__(self):
        self.filename = os.path.join(CUR_DIR, 'token.json')
        self._set_client()

    def _set_client(self):
        self.cfg = AuthConfig()
        self.client = APIClient(app_key=self.cfg.app_key,
                                app_secret=self.cfg.app_secret,
                                redirect_uri=self.cfg.callback_url)

    def set_token(self):
        jsonfile = file(self.filename, 'r')
        token = json.load(jsonfile)
        self.client.set_access_token(token['access_token'],
                                     token['expires_in'])

    def send_weibo(self, text):
        self.set_token()
        if not isinstance(text, unicode):
            text = text.encode('utf-8')
        self.client.statuses.update.post(status=text)

    def send_pic_weibo(self, text, photo):
        self.set_token()
        pic = file(photo, 'rb')
        if not isinstance(text, unicode):
            text = text.encode('utf-8')
        self.client.statuses.upload.post(status=text, pic=pic)
Example #6
0
	def get_user_info(self,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
		expires_in = r.expires_in
		print r.access_token,r.expires_in
		client.set_access_token(access_token, expires_in)
		uid = client.get.account__get_uid().uid
		print uid
		user  = User.verify_user_openID(accountType=User.USER_TYPE_SINA_WEIBO,\
							accountID=uid)
		if not user:
			user_info = client.get.users__show(uid=uid)
			user = User.new(username="******" % (User.USER_TYPE_SINA_WEIBO,uid),\
						accountType=User.USER_TYPE_SINA_WEIBO,accountID=uid)
			user.screen_name = user_info.screen_name
			user.gender	= user_info.gender
			user.headPortrait_url = user_info.profile_image_url #avatar_large?
			print user_info
			user.openIDinfo = user_info
		else:
			print "old user"

		if user.last_login == None:
			user.bonus_notification = 1
		else:
			last_login_date = datetime.fromtimestamp(user.last_login)
			if last_login_date.date() < datetime.today().date():
				user.bonus_notification = 1
		user.last_login	= int(time.time())

		self.got_user_info(uid,user)
Example #7
0
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:]
Example #8
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)
Example #9
0
def weibo_login_check(request):
    code = request.GET.get('code', None)
    back_to_url = _get_referer_url(request)
    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
    expires_in = r.expires_in

    request.session['oauth_access_token'] = r
    client.set_access_token(access_token, expires_in)
    uid = client.account.get_uid.get()
    data = client.users.show.get(uid=uid['uid'])
    user = {
        'weibo_id': data['id'],
        'name': data['screen_name'],
        'description': data['description'],
        'avatar': data['avatar_large'],
        'created_at': datetime.datetime.now().strftime('%y年%m月%d日 %H:%M:%S'),
    }

    #check the database
    user_ins = profile_manager()
    user_ins.check_or_save(user)
    request.session['user'] = user
    return HttpResponseRedirect(back_to_url)
Example #10
0
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))
Example #11
0
def begin():

APP_KEY = 'xxxxxxxx' # app key
APP_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # app secret
CALLBACK_URL = 'https://api.weibo.com/oauth2/default.html' # callback url

client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)

code = get_code()

r = client.request_access_token(code)
print r
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in # token过期的UNIX时间

client.set_access_token(access_token, expires_in)

#发普通微博
client.statuses.update.post(status=u'test')

#发图片微博
f = open('C:/pic/test.jpg', 'rb')
r = client.statuses.upload.post(status=u'测试OAuth 2.0带图片发微博', pic=f)
f.close() # APIClient不会自动关闭文件,需要手动关闭

begin() 
Example #12
0
def get_local_weibo_client():
    all_tokens = None
    if 'token.json' not in os.listdir('.'):
        print 'no token.json file'
        return None
    else:
        f = file('token.json', 'r')
        all_tokens = json.load(f)
        f.close()
    if not all_tokens:
        return None

    token = all_tokens.pop(0)
    APP_KEY = token['APP_KEY']
    APP_SECRET = token['APP_SECRET']
    CALLBACK_URL = token['CALLBACK_URL']
    client = APIClient(app_key=APP_KEY,
                       app_secret=APP_SECRET,
                       redirect_uri=CALLBACK_URL)
    access_token = token['token']
    expires_in = token['expires']

    client.set_access_token(access_token, expires_in)

    return client
Example #13
0
def post_weibo(access_token, expires_in, text, pic=None):
    auth_client = APIClient(APP_KEY, APP_SECRET, CALLBACK_URL)
    auth_client.set_access_token(access_token, expires_in)
    if pic == None:
        auth_client.statuses.update.post(status=text)
    else:
        auth_client.statuses.upload.post(status=text, pic=pic)
Example #14
0
File: test2.py Project: 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'))
Example #15
0
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
Example #16
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)
Example #17
0
def upload_pic(code):
    #print "codecodecodecode"
    #print code
    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)
    #code = raw_input("Input 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)

    idx = 1
    default_msg_part_1 = 'This is no.'
    default_msg_part_2 = ' msg sent automatically from benny"s robot HAHAHA'

    # send a weibo with img
    f = open('test.jpg', 'rb')
    #r = client.statuses.share.post(status=u'test: weibo with an img. -benny')
    r = client.statuses.share.post(access_token=access_token,
                                   status=u'测试 http://www.weibo.com/',
                                   pic=f)
    f.close()  # APIClient不会自动关闭文件,需要手动关闭
Example #18
0
class Weibo(object):

    def __init__(self):
        self.APP_KEY = current_app.config['WEIBO_APP_KEY']
        self.APP_SECRET = current_app.config['WEIBO_APP_SECRET']
        self.CALLBACK_URL = current_app.config['WEIBO_CALLBACK_URL']
        self.ACCESS_TOKEN = current_app.config['WEIBO_ACCESS_TOKEN']
        self.EXPIRES_TIME = current_app.config['WEIBO_EXPIRES_TIME']
        self.client = APIClient(
            app_key=self.APP_KEY, app_secret=self.APP_SECRET, redirect_uri=self.CALLBACK_URL)
        self.client.set_access_token(self.ACCESS_TOKEN, self.EXPIRES_TIME)

    def post_weibo(self, **kw):
        current_app.logger.info('_post_weibo')
        try:
            body = kw.get('body')
            url = kw.get('url')
            nickname = u' 团长: ' + kw.get('nickname')
            topic = u'#海淘拼单#'
            r = self.client.statuses.share.post(
                status=body + nickname + topic + url)
            return r
        except Exception as e:
            current_app.logger.exception('_post_weibo')
            sendException(e, 'Weibo post_weibo')
            return None
Example #19
0
def create_user_from_weibo(request,
                           template_name='register/create_user_from_weibo.html'
                           ):

    oauth_access_token = request.session.get('oauth_access_token', None)

    if request.user.is_authenticated() or oauth_access_token is None:
        return HttpResponseRedirect(reverse('home.views.index'))

    client = APIClient(app_key=APP_KEY,
                       app_secret=APP_SECRET,
                       redirect_uri=_get_weibo_callback_url(request))
    client.set_access_token(oauth_access_token['access_token'],
                            oauth_access_token['expires_in'])

    weibo_user = client.get.users__show(uid=oauth_access_token['uid'])
    weibo_username = weibo_user.screen_name

    template_var = {}
    form = RegistrationForm(initial={'username': weibo_username})
    if request.method == 'POST':
        form = RegistrationForm(request.POST.copy())
        if request.method == 'POST':
            if form.is_valid():
                username = form.cleaned_data['username']
                email = form.cleaned_data['email']
                password = form.cleaned_data['password']
                user = User.objects.create_user(username, email, password)
                user.is_active = True
                user.save()

                profile = UserProfile()
                profile.user = user
                profile.song_ord_filed = 'post_datetime'
                profile.save()

                #weibo信息记录
                w_user = WeiboUser()
                w_user.user = user

                w_user.weibo_user_id = oauth_access_token['uid']
                w_user.weibo_username = weibo_username
                w_user.oauth_access_token = oauth_access_token['access_token']
                w_user.save()

                #发微博提示
                if request.POST.get('update_msg'):
                    msg = request.POST.get('bind_msg')[0:140]
                    client.post.statuses__update(status=msg)

                user = authenticate(username=username, password=password)
                auth_login(request, user)

                return HttpResponseRedirect(reverse('songs.views.my_home'))

    template_var['form'] = form
    template_var['weibo_username'] = weibo_username
    return render_to_response(template_name,
                              template_var,
                              context_instance=RequestContext(request))
Example #20
0
def request_access_token(code, oauth, redirect_uri=None):
    '''
    return access token as object: {"access_token":"your-access-token","expires_in":12345678,"uid":1234}, expires_in is standard unix-epoch-time
    '''

    client = APIClient(apitype='oauth2', format=None)
    redirect = redirect_uri if redirect_uri else oauth.app_callback
    if not redirect:
        raise APIError('21305', 'Parameter absent: redirect_uri', 'OAuth2 request')
    r = client.access_token(
        client_id=oauth.app_key,
        client_secret=oauth.app_secret,
        redirect_uri=redirect,
        code=code, grant_type='authorization_code',
        _method='POST'
    )

    current = int(time.time())
    expires = r.expires_in + current
    remind_in = r.get('remind_in', None)
    if remind_in:
        rtime = int(remind_in) + current
        if rtime < expires:
            expires = rtime
    jo = JsonObject(access_token=r.access_token, expires_in=expires)
    uid = r.get('uid', None)
    if uid:
        jo.uid = uid
    return jo
Example #21
0
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:]
Example #22
0
def weibo_auth(request):

    # 获取URL参数code:

    code = request.GET.get('code')

    client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=_get_weibo_callback_url(request))
    token_obj = client.request_access_token(code)
    client.set_access_token(token_obj.access_token, token_obj.expires_in)

    if request.session.has_key('oauth_access_token'):
        del request.session['oauth_access_token']

    request.session['oauth_access_token'] = { 'uid' : token_obj.uid, 'access_token' : token_obj.access_token, 'expires_in' :  token_obj.expires_in}

    oauth_access_token = request.session.get('oauth_access_token', None)

    back_to_url = reverse('songs.views.my_home')

    if token_obj is not None:
        try:
            w_user = WeiboUser.objects.get(weibo_user_id=oauth_access_token['uid'])
            user = authenticate(weibo_user=w_user)
            if user and user.is_active:
                auth_login(request,user)

        except WeiboUser.DoesNotExist:
            back_to_url = reverse('social.views.create_user_from_weibo')

    return HttpResponseRedirect(back_to_url)
Example #23
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
Example #24
0
def callback():
    code = request.args.get('code')
    if code is not None:
        client = APIClient(
            app_key = current_app.config['APP_KEY'],
            app_secret = current_app.config['APP_SECRET'],
            redirect_uri = current_app.config['CALLBACK_URL'])
        r = client.request_access_token(code)
        access_token = r.access_token
        expires_in = r.expires_in
        uid = r.uid
        client.set_access_token(access_token, expires_in)
        session['access_token'] = access_token
        user = User.query.filter_by(uuid = uid).first()
        if user is not None:
            login_user(user)
            return redirect(url_for('main.index'))
        else:
            u = client.users.show.get(uid = uid)
            user = User(
                uuid = uid,
                name = u.get('screen_name'),
                location = u.get('location'),
                description = u.get('description'),
                avatar = u.get('profile_image_url'),
                url = u.get('domain'),
                gender = u.get('gender')
            )
            db.session.add(user)
            login_user(user)
            return redirect(url_for('main.index'))
    else:
        return redirect(url_for('main.index'))
Example #25
0
def callback(request):
    code = request.GET.get('code')
    client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
    r = client.request_access_token(code)
    request.session['token'] = r.access_token
    request.session['expire'] = r.expires_in
    return HttpResponseRedirect('/')
Example #26
0
    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
                  )
Example #27
0
def weibo_check(request):
    code = request.GET.get('code', None)
    now = datetime.datetime.now()
    if code:
        client = APIClient(app_key=settings.WEIBO_APP_KEY, app_secret=settings.WEIBO_APP_SERCET, redirect_uri=settings.WEIBO_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
        uid = r.uid
        # 在此可保存access token
        client.set_access_token(access_token, expires_in)
        request.session['access_token'] = access_token
        request.session['expires_in'] = expires_in
        request.session['uid'] = uid

        # http://open.weibo.com/wiki/2/users/show
        data=client.user.show.get(uid)
        user=User(username=uid)
        user.save()
        name=data.get('name')
        return HttpResponseRedirect('/verification/index/?username='******'''
        # 更新数据库
        if MyUser.objects.filter(uid=uid).exists():
            MyUser.objects.filter(uid=uid).update(last_login=now)
            user.Login()	# 登陆
            return HttpResponseRedirect('/')#返回主页
        else:
            # 创建用户并登陆
            u_id = user.createUser()
        if u_id:
            return HttpResponseRedirect('/manage/user/%s/' %u_id)
        '''
    return HttpResponse('/404/') #未获得新浪微博返回的CODE
Example #28
0
 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 weibo_position_search_data(self):
   client = APIClient(app_key=oauth_para['weibo']['appid'], app_secret=oauth_para['weibo']['secret'], redirect_uri=oauth_para['weibo']['redirect_url'])
   client.set_access_token( self.__weibo_access_token, self.__weibo_expires )    
   ruid = client.get.account__get_uid()
   address = request.params.get('address')
   #return address
   
   position = client.get.location__geo__address_to_geo( address = address )
   
   ruid = client.get.account__get_uid()
   userinfo = client.get.users__show( access_token =self.__weibo_access_token, uid = ruid.uid )
  
   lats = str(position.geos[0]['latitude'])
   lngs = str(position.geos[0]['longitude'])
   
   lat = string.atof( lats )
   lng = string.atof( lngs )
   
   place_photos = client.get.place__nearby__photos( access_token =self.__weibo_access_token, lat = lat, long = lng, range = 500, count = 50 )
  
   
   if 'statuses' in place_photos:
     data = json.dumps( place_photos.statuses)
     return {'data': data, 'username':userinfo.screen_name} 
   else:
     return {'error_info': 'input_error', 'username':userinfo.screen_name}
Example #31
0
def main():
    client = APIClient(
        app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=C_URL)
    client.set_access_token(ACCESS_TOKEN, EXPIRES_IN)
    base_dir = os.path.split(os.path.realpath(__file__))[0]

    f = open(os.path.join(base_dir, 'tang300.v4.json'), 'r')
    ps = json.load(f)
    f.close()
    try:
        logfilename = os.path.join(base_dir, 'log.txt')
        logfile = open(logfilename, 'r')
        idx = int(logfile.read())
        logfile.close()
    except:
        idx = 0

    p = ps[idx]
    q = urllib.quote_plus(p[1].encode('utf8'))
    s = u'《%s》%s %s https://www.google.com.hk/#q=%s' % (p[1], p[2], p[0], q)
    s = urllib.quote_plus(s.encode('utf8'))
    img = os.path.join(base_dir, 'poem_png/%03d.png' % idx)
    client.statuses.upload.post(
        status=s, pic=open(img, 'rb'))

    idx = (idx+1) % len(ps)
    logfile = open(logfilename, 'w')
    logfile.write(str(idx))
    logfile.close()
Example #32
0
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
Example #33
0
     def GET(self):
        try:
            ins=web.input()
   
            # 获取URL参数code:
            code = ins.get('code')

            client = APIClient(app_key=CONSUME_KEY, app_secret=CONSUME_SECRET,redirect_uri=web.ctx.get('homedomain')+'/callback')
            
            r = client.request_access_token(code)
            access_token = r.access_token # 新浪返回的token,类似abc123xyz456
            #return str(access_token )
            expires_in = r.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)
            
            #oauth_verifier=ins.get('oauth_verifier',None)
            #request_token=session.get('request_token',None)
            #auth=OAuthHandler(CONSUME_KEY, CONSUME_SECRET)
            #auth.request_token=request_token
            #通过oauth_verifier来获取access_token
            #access_token=auth.get_access_token(oauth_verifier)
            session.access_token=access_token
            
            session.code = code
            session.expires_in = expires_in
            #return str(access_token)
            print '111111111111111111111'
            #user = client.get.users_show()
            #id = client.get.account__get_uid()
            #return str(expires_in)
            web.seeother("/index")
        except Exception:
            web.header("Content-Type", "text/html;charset=utf-8")
            return ':-( 出错了在这里222'+ str(code)
Example #34
0
def weibo_auth_end(request):
    code   = request.GET['code']
    client = APIClient(app_key=weibo_app_key, app_secret=weibo_app_secret, redirect_uri=weibo_call_back)
    r      = client.request_access_token(code)

    uid          = r.uid
    access_token = r.access_token 
    expires_in   = r.expires_in 

    client.set_access_token(access_token, expires_in)

    response = HttpResponseRedirect("/")

    response.set_cookie('token', access_token)
    response.set_cookie('expires_in', str(int(expires_in)))
    response.set_cookie('weibo_uid', str(uid))

    show=client.users.show.get(access_token=access_token, uid=uid)

    username   = '******' + str(uid)
    password   = '******'
    first_name = 'weibo'
    last_name  = show['screen_name']

    user = auth.authenticate(username=username, password=password)
    if user is None:
        user = User.objects.create_user(username=username, password=password)
        user.first_name = first_name
        user.last_name  = last_name
        user.save()

    user = auth.authenticate(username=username, password=password)
    auth.login(request, user)

    return response
def morepictures(request):
    weibo_client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
    if request.COOKIES.has_key('access_token') is False:
        DEBUG_TRACE.debug("Has no acccess token")
        return HttpResponseRedirect(CALLBACK_URL)
    else:
        access_token = request.COOKIES['access_token']
        expires_in = request.COOKIES['expires_in']
        uid = request.COOKIES['uid']
        page = request.GET['page']
        name = request.GET['name']
        weibo_client.set_access_token(access_token, expires_in)
        user_info = weibo_client.get.users__show(screen_name=name)
        screen_name = user_info.screen_name
        avatar_large = user_info.avatar_large

        photo_list = getPhotoList(weibo_client, screen_name, 5, page)
        t = Template(""" 
		            {% for photo in photo_list %}
		                <li data-icon="false"><a href="">
		                    <div class="my-li-thumb">
		                        <img width="50" height="50" src="{{ avatar_large }}" />
		                    </div>
		                    <h3 class="my-li-name">{{ screen_name }}</h3>
		                    <p  class="my-li-text">{{ photo.text }}</p>
		                    <div class="my-li-content">
	                            <img class="my-li-content-image" src="{{ photo.image }}" />
	                        </div>
	                    </a></li>
                    {% endfor %}""")
                    
        c = Context({'photo_list': photo_list, 'screen_name': screen_name, 'avatar_large': avatar_large})
        html = t.render(c)
        response = HttpResponse(html)
        return response
Example #36
0
def weibo_check(request):
    code = request.GET.get('code', None)
    now = datetime.datetime.now()
    if code:
        client = APIClient(app_key=settings.APP_KEY,
                           app_secret=settings.APP_SERCET,
                           redirect_uri=settings.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
        uid = r.uid
        # 在此可保存access token
        client.set_access_token(access_token, expires_in)
        request.session['access_token'] = access_token
        request.session['expires_in'] = expires_in
        request.session['uid'] = uid
        user = SupserWeibo(access_token=access_token, uid=uid,
                           request=request)  # 实例化超级微博类
        # 更新数据库
        if MyUser.objects.filter(uid=uid).exists():
            MyUser.objects.filter(uid=uid).update(last_login=now)
            user.Login()  # 登陆
            return HttpResponseRedirect('/')
        else:
            # 创建用户并登陆
            u_id = user.createUser()
            if u_id:
                return HttpResponseRedirect('/manage/user/%s/' % u_id)
    return HttpResponse('/404/')
Example #37
0
class Weibo:
    
    def __init__(self, api_info):
        self.client = APIClient(app_key = api_info['app_key'], app_secret = api_info['app_secret'])
        self.client.set_access_token(api_info['access_token'], api_info['expires_in'])

    def get_user_weibo(self, username, page_no, count = 100):
        return self.client.get.statuses__user_timeline(uid = username, count = count, page = page_no)



    def create_weibo(self, text):
        return self.client.post.statuses__update(status = text)

    def create_weibo_with_pic(self, text, pic):
        return self.client.upload.statuses__upload(status = text, pic = pic)

    def repost_weibo(self, id, text, is_comment = 0):
        return self.client.post.statuses__repost(id = id, status = text, is_comment = is_comment)
    
    def follow_you(self, uid):
        return self.friendships__create(uid = uid)

    def comments_show(self, id):
        ''' list all the reply of one weibo '''
        return self.client.get.comments__show(id = id)
        
    def comments_create(self, id, text):
        return self.client.post.comments__create(id = id, comment = text)

    def comments_reply(self, id, cid, text):
        return self.client.post.comments__reply(id = id , cid = cid, comment = text)
Example #38
0
def weiboLogcheck(request):
    code = request.GET.get('code', None)
    if 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
        uid = r.uid
        # 在此可保存access token
        client.set_access_token(access_token, expires_in)
        weibo_res = client.get_user_time_line(0)
        text = weibo_res.statuses
        uname = text[0]['user']['name']


        try:
            exitUser=Users.objects.filter(login_type='1').get(weibo_id=uid)
            request.session['logintype']=1
            user = authenticate(username=uname,password=uid)
            if user is not None:
                login(request, user)
                return HttpResponseRedirect('/personalRecommend/', {'current_time': datetime.now(),'uname':request.user.username})

        except Users.DoesNotExist :

            Users.create_weiboUser(uname,uid)
            user = authenticate(username=uname,password=uid)
            if user is not None:
                login(request, user)
                request.session['logintype']=1
                return render_to_response('weibologin/tasteTest.html',
                                      {'current_time': datetime.now(),'liveJob_list':liveJob_list,'liveType_list':liveType_list})
Example #39
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
Example #40
0
def weibo_check(request):
    code = request.GET.get('code', None)
    now = datetime.datetime.now()
    if code:
        client = APIClient(app_key=settings.APP_KEY, app_secret=settings.APP_SERCET, redirect_uri=settings.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
        uid = r.uid
        # 在此可保存access token
        client.set_access_token(access_token, expires_in)
        request.session['access_token'] = access_token
        request.session['expires_in'] = expires_in
        request.session['uid'] = uid
        user = SupserWeibo(access_token=access_token, uid=uid, request=request)      # 实例化超级微博类
        # 更新数据库
        if MyUser.objects.filter(uid=uid).exists():
            MyUser.objects.filter(uid=uid).update(last_login=now)
            user.Login()    # 登陆
            return HttpResponseRedirect('/')
        else:
            # 创建用户并登陆
            u_id = user.createUser()
            if u_id:
                return HttpResponseRedirect('/manage/user/%s/' %u_id)
    return HttpResponse('/404/')
Example #41
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())
Example #42
0
 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)
Example #43
0
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)
def searchfriend(request):
    weibo_client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
    if request.COOKIES.has_key('access_token') is False:
        return HttpResponseRedirect(CALLBACK_URL)
    else:
        access_token = request.COOKIES['access_token']
        expires_in = request.COOKIES['expires_in']
        uid = request.COOKIES['uid']
        search_value = request.GET['searchvalue']
        
        weibo_client.set_access_token(access_token, expires_in)
        search_result = weibo_client.get.search__suggestions__users(q=search_value)
        user_info = weibo_client.get.users__show(screen_name=search_value)
        result = [entry.screen_name for entry in search_result]
        if user_info.screen_name not in result:
            result.insert(0, user_info.screen_name)        
        t = Template(""" 
                     {% for name in result %}
		                <li><a href="photogallary?query_screen_name={{ name }}">
				            <h3>{{ name }}</h3>
	                    </a></li>
                     {% endfor %} """)
                     
        c = Context({'result':result})
        html = t.render(c)
        response = HttpResponse(html)     
        return response
def morefriends(request):
    weibo_client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
    if request.COOKIES.has_key('access_token') is False:
        DEBUG_TRACE.debug("Has no acccess token")
        return HttpResponseRedirect(CALLBACK_URL)
    else:
        access_token = request.COOKIES['access_token']
        expires_in = request.COOKIES['expires_in']
        uid = request.COOKIES['uid']
        friend_cursor = request.GET['friend_cursor']
        
        weibo_client.set_access_token(access_token, expires_in)
        friend_info = weibo_client.get.friendships__friends(uid=uid, count=20, cursor=friend_cursor)
        friend_list = getFriendList(friend_info)
        
        t = Template(""" 
                     {% for friend in friend_list %}
		                <li><a href="photogallary?query_screen_name={{ friend.screen_name }}">
	                        <img width="80" height="80" src="{{ friend.avatar_large }}"></img>
				            <h3>{{ friend.screen_name }}</h3>
				            <p>{{ friend.description }}</p>
	                    </a></li>
                    {% endfor %} """)
                    
        c = Context({'friend_list': friend_list})
        html = t.render(c)
        response = HttpResponse(html)
        return response
Example #46
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()
Example #47
0
    def post(self):
	god_name = self.request.get('god_name')
	access_token = self.request.get('access_token')
	expires_in = self.request.get('expires_in')
        self.response.out.write("""<html><head><title>Weibo-spy-result</title></head><body><center>""")
        if  god_name == "":
            self.response.out.write("""<h2>4 Input can not be empty! <a href="/">Back</a></h2>""")
        else:

            client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, 
			     redirect_uri=CALLBACK_URL)
	    client.set_access_token(access_token, expires_in)
            info = client.statuses.user_timeline.get()
	    #可以考虑cookie
	    oauth_user = OauthUser(key_name=info['statuses'][0]['user']['idstr'])
	    oauth_user.sina_uid = info['statuses'][0]['user']['idstr']
	    oauth_user.sina_access_token = str(access_token)
	    oauth_user.sina_expires = int(expires_in)

	    status = client.statuses.user_timeline.get(screen_name=god_name)

                
            God(user=oauth_user,
                god_name=god_name,
                sina_last_id=str(status['statuses'][0]['id'])).put()

            self.response.out.write('Your spy settings are successfully done!<br>')
            self.response.out.write('The last tweet synchronized is below:<br>')
            for result in status['statuses']:
            	self.response.out.write('<b>%s</b><br>' % result.text)
        self.response.out.write('</center></body></html>')
Example #48
0
    def get(self):
        query = db.GqlQuery("SELECT * FROM OauthUser")
        if query.count() > 0:
            for result in query:
            	client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, 
				     redirect_uri=CALLBACK_URL)
	    	client.set_access_token(result.sina_access_token, result.sina_expires)
                
                for god in result.god_name:
                   ttl = client.statuses.user_timeline.get(screen_name=god.god_name, since_id=god.sina_last_id)
                   tweet = "" 
		   if len(ttl['statuses']) > 0:
                   	god.sina_last_id=ttl['statuses'][0]['idstr']
                   	god.put()
                   for res in ttl['statuses']:
                    	   tweet = tweet + res.text + "NEXT"
                   if len(tweet) > 0:
                           message = mail.EmailMessage()
                           message.subject = god.god_name
                           message.sender = Mail_from
                           message.to = Mail_to
                           message.body = """ 
%s
                           """ % tweet
                           message.send()
Example #49
0
File: test.py Project: 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"))
Example #50
0
File: sina.py Project: 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))
Example #51
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)
Example #52
0
 def new_view(request, *args, **kwargs):
     if 'token' in request.session and 'expire' in request.session:
         client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
         client.set_access_token(request.session['token'], request.session['expire'])
         if client.is_expires():
             return render(request, 'loginForm.html')
         return view(request, client, *args, **kwargs)
     return render(request, 'loginForm.html')
Example #53
0
 def __init__(self):
     Appkey = "3423280349"
     Appsecret = "1f74f37b71c5ca2e0faadc41129d516a"
     callbackurl = "http://www.baidu.com"
     ack = "2.00pVrsKC3mz1gE840b5f298788d81D"
     expin = "7801776"
     self.client = APIClient(app_key=Appkey, app_secret=Appsecret)
     self.client.set_access_token(ack, expin)
Example #54
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()
Example #55
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)
Example #56
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())
Example #57
0
 def __init__(self,*aTuple):
     self._appKey = aTuple[0] #your app key
     self._appSecret = aTuple[1] #your app secret
     self._callbackUrl = aTuple[2] #your callback url
     self._account = aTuple[3] #your weibo user name (eg.email)
     self._password = aTuple[4] # your weibo pwd
     self.AppCli = APIClient(app_key=self._appKey,app_secret=self._appSecret,redirect_uri=self._callbackUrl)
     self._author_url = self.AppCli.get_authorize_url()
     self._getAuthorization()