'''Tiny Python Facebook library Just drop it into your code, if you like All you need to know: Besides Python, you need the simplejson library. FQL: app.fql(query, session_key) Other calls: app.rpc(method_name, some_arg=some_value, another_arg=other_value) method, api_key, v, call_id, format, and sig are filled in for you. You provide the rest.''' # (C) 2007 Lenny Domnitser # License: BSD import md5 import time import urllib import simplejson def hex_md5(text): return md5.md5(text).hexdigest() class App: def __init__(self, api_key, secret_key): self.api_key = api_key self.secret_key = secret_key def rpc(self, method, **kwargs): urlargs = dict(method=method, api_key=self.api_key, v='1.0', call_id=str(time.time()), format='json') urlargs.update(kwargs) urlargs['sig'] = hex_md5(''.join( '%s=%s' % item for item in sorted(urlargs.items())) + self.secret_key) json = urllib.urlopen('http://api.facebook.com/restserver.php', urllib.urlencode(urlargs)).read() return simplejson.loads(json) def fql(self, query, session_key): return self.rpc('fql.query', session_key=session_key, query=query)