class WeiboInterface: def __init__(self): self._client = APIClient(app_key, app_secret, r_url) url = self._client.get_authorize_url() print url print "please echo $code to code.data in another shell" rd = ReadCode() code = rd.get_code() # todo need to check code logger.info("your code is %s" %code ) try: r = self._client.request_access_token(code) self._client.set_access_token(r.access_token, r.expires_in) except: logger.error("code error!") exit(1) def get_msg(self): msg = self._client.statuses__friends_timeline() msg_list = message_list(msg) i = 0 while i < msg_list.get_msg_count(): msg = msg_list.get_message(i) usr = msg.msg_user() retweeted_msg = msg.msg_retweeted_status() usr_name = usr.get_user_name() msg_text = msg.msg_text() format_msg("[", usr_name, "] : " , msg_text) if not retweeted_msg == None: re_usr = retweeted_msg.msg_user() re_usr_name = re_usr.get_user_name() format_msg('----原文转发---- [', \ re_usr.get_user_name(), ']:[',\ retweeted_msg.msg_text(),']') i = i + 1 def uploade_img(self, file_path): self._ret_msg = self._client.upload.statuses__upload( \ status='uploaded at ' + str(time.time()),\ pic=open(file_path, 'rb')) return self.parse_msg() def parse_msg(self): ''' TODO ''' print self._ret_msg return True
def get_all_new_weibo(self): client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL) # username = "******" # password = "******" # API = SinaAPI(CALLBACK_URL, APP_KEY, CALLBACK_URL, username, password) # code = API.get_code_Security() file_object = open('D:/weibo_code.txt') expires_in = file_object.read() # requests = client.request_access_token(code) # access_token = requests.access_token # 新浪返回的token,类似abc123xyz456 # expires_in = requests.expires_in client.set_access_token('2.006ctQRCL2yKEE588ff1b69a06mbKW', expires_in) statuses = client.statuses__friends_timeline(count=100)['statuses'] for weiboJson in statuses: logging.info(weiboJson) self.parse_weibo(weiboJson)
redirect_uri=CALLBACK_URL) # 得到授权页面的url,利用webbrowser打开这个url url = client.get_authorize_url() print url webbrowser.open_new(url) # 获取code=后面的内容 print '输入url中code后面的内容后按回车键:' code = raw_input() 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 # 设置得到的access_token client.set_access_token(access_token, expires_in) # 可以打印下看看里面都有什么东西 statuses = client.statuses__friends_timeline()[ 'statuses'] # 获取当前登录用户以及所关注用户(已授权)的微博 length = len(statuses) print length for i in range(0, length): print u'昵称:' + statuses[i]['user']['screen_name'] print u'简介:' + statuses[i]['user']['description'] print u'位置:' + statuses[i]['user']['location'] print u'微博:' + statuses[i]['text']
# 获取URL参数code: print "输入url中code后面的内容后按回车键:" code = raw_input() # 人工输入网址后面的code内容 r = client.request_access_token(code) # 获得用户授权 # 保存access_token, expires_in access_token = r.access_token # 新浪返回的token,类似abc123xyz456 expires_in = r.expires_in # 设置得到的access_token,client可以直接调用API了 client.set_access_token(access_token, expires_in) # statuses = client.statuses__friends_timeline()['statuses'] length = len(statuses) print length # 输出信息 stas1 = [] stas2 = [] stas3 = [] stas4 = [] stas5 = [] for i in range(0, length): print u"微博创建时间:" + statuses[i]['created_at'] print u'昵称:' + statuses[i]['user']['screen_name'] print u'简介:' + statuses[i]['user']['description'] print u'位置:' + statuses[i]['user']['location'] print u'微博:' + statuses[i]['text'] stas1.append(statuses[i]['created_at'])
#得到授权页面的url,利用webbrowser打开这个url url = client.get_authorize_url() print url webbrowser.open_new(url) #获取code=后面的内容 print '输入url中code后面的内容后按回车键:' code = raw_input() #code = your.web.framework.request.get('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 # 设置得到的access_token client.set_access_token(access_token, expires_in) #可以打印下看看里面都有什么东西 #print client.statuses__public_timeline() #statuses = client.statuses__public_timeline()['statuses'] #获取最新的公共微博 statuses = client.statuses__friends_timeline()['statuses'] length = len(statuses) print length #输出了部分信息 for i in range(0,length): print u'昵称:'+statuses[i]['user']['screen_name'] print u'简介:'+statuses[i]['user']['description'] print u'位置:'+statuses[i]['user']['location'] print u'微博:'+statuses[i]['text']