def sendQQWeibo(self,text,imgno=None): userAccessToken=UserAccessToken().all().fetch(1) if userAccessToken and userAccessToken[0].qqisright: useracc=userAccessToken[0] else: return True self.auth = qqOAuthHandler(webSetting.qqconsumer_key, webSetting.qqconsumer_secret) self.auth.setToken(useracc.qqToken, useracc.qqSecret) self.api = qqAPI(self.auth) try: if imgno: # image = urlfetch.fetch( # url =setting[0].dbphotoWebSite+'/s/'+imgno, # payload = {}, # method = urlfetch.GET, # headers = {'Content-Type':'application/x-www-form-urlencoded', # 'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6'}, # follow_redirects = True,deadline=10) # if image.status_code==200: # bf=db.Blob(image.content) result=self.api._t_add_pic(filename=imgno,content=text.encode('utf-8'),clientip='64.233.172.33') # else: # result=self.api.update_status(status=text[:139].encode('utf-8')) else: result=self.api._t_add(content=text.encode('utf-8'),clientip='64.233.172.33') except Exception,e: logging.info('qq'+str(e)) if str(e).find('40025')==-1: self.error(500) return False
def sendQQWeibo(request,text,imgno=None): weiboquery=WeiBo.objects.filter(user=request.user).filter(type="teng") if 0==weiboquery.count(): return True weibo=weiboquery[0] auth = qqOAuthHandler(qqconsumer_key, qqconsumer_secret) auth.setToken(weibo.token1, weibo.token0) api = qqAPI(auth) try: if imgno: # image = urlfetch.fetch( # url =setting[0].dbphotoWebSite+'/s/'+imgno, # payload = {}, # method = urlfetch.GET, # headers = {'Content-Type':'application/x-www-form-urlencoded', # 'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6'}, # follow_redirects = True,deadline=10) # if image.status_code==200: # bf=db.Blob(image.content) result=api._t_add_pic(filename=imgno,content=text.encode('utf-8'),clientip='64.233.172.33') # else: # result=self.api.update_status(status=text[:139].encode('utf-8')) else: result=api._t_add(content=text.encode('utf-8'),clientip='64.233.172.33') except Exception,e: logging.info('qq'+str(e)) if str(e).find('40025')==-1: return False
def weiboLogin(request): # 保存最初的登录url,以便认证成功后跳转回来 # back_to_url = _get_referer_url(request) # request.session['login_back_to_url'] = back_to_url website=request.REQUEST.get('website') if hasattr(request,'environ'): host_url='http://'+request.environ.get('HTTP_HOST','/') if hasattr(request,'META'): host_url='http://'+request.META.get('HTTP_HOST','/') fromurl=request.REQUEST.get('fromurl',None) if not fromurl: if hasattr(request,'environ'): fromurl=request.environ.get('HTTP_REFERER','/') if hasattr(request,'META'): fromurl=request.META.get('HTTP_REFERER','/') # fromurl='' fromurl=urllib.urlencode({'fromurl':fromurl}) # 获取oauth认证url # setting=Setting().all().fetch(1) # if setting: # setting=setting[0] # else: # return if 'sina'==website: return # login_backurl =host_url+'/weibo/login_check?website=sina' # login_backurl+="&uid=%s&%s"%(request.user.pk,fromurl) # auth_client = APIClient(xlconsumer_key,xlconsumer_secret,login_backurl) # auth_url = auth_client.get_authorize_url() # # 保存request_token,用户登录后需要使用它来获取access_token ## user_request_token=request.session.get(website+"_request_token1","") ## if not user_request_token: ## user_request_token= auth_client.request_token ## request.session[website+"_request_token1"]=user_request_token # # 跳转到登录页面 # return HttpResponseRedirect(auth_url) elif 'wy'==website: return # login_backurl =host_url+'/weibo/login_check?website=wy' # login_backurl+="&uid=%s&%s"%(request.user.pk,fromurl) # t = TBlog(wyconsumer_key, wyconsumer_secret) # t.get_request_token() # url=t.get_auth_url(login_backurl) # # 保存request_token,用户登录后需要使用它来获取access_token # user_request_token=request.session.get(website+"_request_token3") # if not user_request_token: # user_request_token= t # request.session[website+"_request_token3"]=user_request_token # return HttpResponseRedirect(url) elif 'teng'==website: login_backurl=host_url+'/weibo/login_check?website=teng' login_backurl+="&uid=%s&%s"%(request.user.pk,fromurl) auth=qqOAuthHandler(qqconsumer_key,qqconsumer_secret,callback=login_backurl) url=auth.get_authorization_url() # 保存request_token,用户登录后需要使用它来获取access_token request.session[website+"_request_token4"]=auth return HttpResponseRedirect(url)
def get(self): # 保存最初的登录url,以便认证成功后跳转回来 # back_to_url = _get_referer_url(request) # request.session['login_back_to_url'] = back_to_url website=self.request.get('website') # userAccessToken=UserAccessToken() # userAccessToken.sinaExpires='1522066881' # userAccessToken.sinaSecret='2.00HGNhqCdb1iQBb8eed27af80MRd2r' # userAccessToken.put() # logging.info(str(UserAccessToken().all().count())) # 获取oauth认证url # setting=Setting().all().fetch(1) # if setting: # setting=setting[0] # else: # return if 'sina'==website: login_backurl =webSetting.WEIBOURL+'/Admin/login_check?website=sina' auth_client = weibo.APIClient(webSetting.xlconsumer_key, webSetting.xlconsumer_secret, login_backurl) auth_url = auth_client.get_authorize_url() # 保存request_token,用户登录后需要使用它来获取access_token # user_request_token=memcache.Client().get(website+"_request_token1") # if not user_request_token: # user_request_token= auth_client.request_token # memcache.Client().set(website+"_request_token1",user_request_token,36000) # 跳转到登录页面 return self.redirect(auth_url) elif 'wy'==website: login_backurl =self.request.host_url+'/Admin/login_check?website=wy' t = TBlog(webSetting.wyconsumer_key, webSetting.wyconsumer_secret) t.get_request_token() url=t.get_auth_url(login_backurl) # 保存request_token,用户登录后需要使用它来获取access_token user_request_token=memcache.Client().get(website+"_request_token3") if not user_request_token: user_request_token= t memcache.Client().set(website+"_request_token3",user_request_token,36000) return self.redirect(url) elif 'teng'==website: login_backurl=self.request.host_url+'/Admin/login_check?website=teng' auth=qqOAuthHandler(webSetting.qqconsumer_key,webSetting.qqconsumer_secret,callback=login_backurl) url=auth.get_authorization_url() # 保存request_token,用户登录后需要使用它来获取access_token memcache.Client().set(website+"_request_token4",auth,36000) return self.redirect(url)