下面的代码将作为对所有社交网络的单一访问。它的目标是连接不同的社交网络,以便更广泛地了解用户的社会生活。我刚刚提交了Twitter访问的代码,但类似的访问将提供给Facebook和Github。
代码是可用的这里。
我希望所有的评论-正确性,风格,最佳实践,日志记录,错误处理。
import tweepy
import TwitterConfig as config_twitter
class Twitter :
def __init__(self):
self.CONSUMER_KEY = config_twitter.get_consumer_key()
self.CONSUMER_SECRET = config_twitter.get_consumer_secret()
self.oauth_token = None
self.oauth_verifier = None
self.api = None
def get_auth_url(self):
self.auth = tweepy.OAuthHandler(self.CONSUMER_KEY, self.CONSUMER_SECRET)
return self.auth.get_authorization_url()
def get_request_token(self):
return (self.auth.request_token.key,self.auth.request_token.secret)
def set_token(self,token):
self.oauth_token = token
def set_verifier(self,verifier):
self.oauth_verifier = verifier
def set_request_token (self,ReqToken):
self.request_token = ReqToken
def get_access_token (self):
self.auth = tweepy.OAuthHandler(self.CONSUMER_KEY, self.CONSUMER_SECRET)
token = self.request_token
#session.delete('request_token')
self.auth.set_request_token(token[0],token[1])
self.auth.get_access_token(self.oauth_verifier)
def authorize (self):
key = self.auth.access_token.key
secret = self.auth.access_token.secret
self.auth = tweepy.OAuthHandler(self.CONSUMER_KEY, self.CONSUMER_SECRET)
self.auth.set_access_token(key, secret)
self.api = tweepy.API(self.auth)
def update_status(self,status):
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return "Verification Problem"
self.api.update_status (status)
return "Done"
def user_information (self):
# returns information of the authenticate user
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return "Verification Problem"
return self.api.me()
def get_friends (self):
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return ["Verification Problem"]
return self.api.GetFriends(self.user_information().name)
def get_followers (self):
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return ["Verification Problem"]
return self.api.GetFollowers()
def get_followers_id (self):
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return "Verification Problem"
return self.api.followers_ids()
def get_friends_ids (self):
# returns ids of the friends
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return "Verification Problem"
return self.api.friends_ids()
def get_rate_limit_status (self):
#returns the rate limit status of the authenticated user
return self.api.rate_limit_status()
def get_tweets(self):
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return ["Verification Problem"]
me = self.user_information()
statuses = self.api.GetUseerTimeline(me.name)
return statuses
def get_messages(self):
if self.oauth_token == None or self.oauth_verifier == None or self.api == None :
return ["Verification Problem"]
return self.api.GetDirectMessages()发布于 2014-05-12 23:34:03
你的命名不一致。有些方法是camelCase的,有些是under_score格式的。选一个。
各种社交网络的一致API在哪里?从你的写作开始,我希望能写出如下的东西:
my_friends = []
for soc in my_social_networks:
my_friends.append(soc.get_friends())
show(my_friends)或者:
my_messages = []
for soc in my_social_networks:
my_messages.append(soc.get_current_messages())
show(my_messages)相反,我看到的是get_tweets或get_wall。这意味着我必须注意我是有Twitter对象还是Facebook对象。因此,对于我想在程序中支持的每一种新类型的社交网络,我的所有代码都需要一个长if/ each。
双下划线并不适用于Python之外的代码。使用单个下划线。
https://codereview.stackexchange.com/questions/49241
复制相似问题