Facebook 是否停止支持 Python?
看起来Python的开发工具包在Github上被删除了。访问这个链接 https://github.com/facebook/python-sdk 会显示404错误,也就是找不到页面。
他们是把开发工作转到别的地方了,还是停止了支持,或者这只是个错误呢?开发者网站上还是链接到Github(见 https://developers.facebook.com/opensource/),但这并不代表什么。
有没有人有这个工具包的备份?
编辑
我知道API还是可以用的,但这并不是重点。很多第三方的包依赖这个开发工具包(比如django-socialregistration)。删除这个库导致这些依赖的包都不能用了,这样一来,就会影响到网站的部署。
3 个回答
0
不,你可以通过使用urlread函数来使用Facebook的图形API。你需要做的就是通过JavaScript从用户那里获取一个访问令牌,关于这方面的文档可以在Facebook开发者网站上找到。下面是一个如何使用URL库函数的例子。
class Facebook(object):
def __init__(self, auth_token):
self.auth_token = auth_token
def load(self, method, user_id = 'me'):
raw = urlopen("https://graph.facebook.com/%s/%s/?access_token=%s" % (user_id, method, self.auth_token)).read()
data = loads(raw)
return data['data'] or []
def with_fields(self, method, user_id = 'me', fields = 'name,likes'):
raw = urlopen("https://graph.facebook.com/%s/%s/?fields=%s&access_token=%s" % (user_id, method, fields, self.auth_token)).read()
data = loads(raw)
return data['data'] or []
def likes(self, user_id = 'me'):
return self.with_fields('likes', user_id, 'name,category')
def me(self):
data = loads (urlopen("https://graph.facebook.com/me?fields=name&access_token=%s" % self.auth_token).read())
return data or {}
def expand(self, like):
data = loads (urlopen("https://graph.facebook.com/%s?access_token=%s" % (like['id'], self.auth_token)).read())
return data or {}
def friends(self, user_id = 'me'):
return self.load('friends', user_id)
def movies(self, user_id = 'me'):
return self.with_fields('movies', user_id)
def music(self, user_id = 'me'):
return self.with_fields('music', user_id)
def picture(self, user_id='me', size=None):
if size:
return "https://graph.facebook.com/%s/picture?access_token=%s&type=%s" % (user_id, self.auth_token, size)
return "https://graph.facebook.com/%s/picture?access_token=%s" % (user_id, self.auth_token)
2
1
来自Facebook的回复
Facebook的官方回复是:
我们不再支持或提供官方的Facebook Python SDK。你可以找到几个非官方的Python SDK,或者直接使用简单的urllib.urlopen调用Graph API。