'''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)