Beispiel #1
0
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
Beispiel #2
0
 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)
Beispiel #3
0
                   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']
Beispiel #4
0
# 获取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']