首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为用户提供方便访问所有社交网站的模块

为用户提供方便访问所有社交网站的模块
EN

Code Review用户
提问于 2014-05-08 17:17:38
回答 1查看 116关注 0票数 1

下面的代码将作为对所有社交网络的单一访问。它的目标是连接不同的社交网络,以便更广泛地了解用户的社会生活。我刚刚提交了Twitter访问的代码,但类似的访问将提供给Facebook和Github。

代码是可用的这里

我希望所有的评论-正确性,风格,最佳实践,日志记录,错误处理。

代码语言:javascript
复制
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()
EN

回答 1

Code Review用户

发布于 2014-05-12 23:34:03

你的命名不一致。有些方法是camelCase的,有些是under_score格式的。选一个。

各种社交网络的一致API在哪里?从你的写作开始,我希望能写出如下的东西:

代码语言:javascript
复制
my_friends = []
for soc in my_social_networks:
    my_friends.append(soc.get_friends())
show(my_friends)

或者:

代码语言:javascript
复制
my_messages = []
for soc in my_social_networks:
    my_messages.append(soc.get_current_messages())
show(my_messages)

相反,我看到的是get_tweetsget_wall。这意味着我必须注意我是有Twitter对象还是Facebook对象。因此,对于我想在程序中支持的每一种新类型的社交网络,我的所有代码都需要一个长if/ each。

双下划线并不适用于Python之外的代码。使用单个下划线。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/49241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档