# If you pass in the access token from the Facebook app as a command line # parameter, be sure to wrap it in single quotes so that the shell # doesn't interpret any characters in it. You may also need to escape # the # character ACCESS_TOKEN = sys.argv[1] except IndexError, e: print >> sys.stderr, \ "Could not either find access token in 'facebook.access_token' or parse args." ACCESS_TOKEN = login() # process the results of the following fql query to create a json output suitable for # consumption by a simple hierarchical tree widget: fql = FQL(ACCESS_TOKEN) q = \ """select name, current_location, hometown_location from user where uid in (select target_id from connection where source_id = me() and target_type = 'user')""" results = fql.query(q) # First, read over the raw fql query and create a hierarchical maps that groups people by # where they live now compared to their hometown. we'll simply tabulate frequencies, but # you could easily grab additional data in the fql and use it for many creative situations current_by_hometown = {} for r in results: if r['current_location'] != None: current_location = r['current_location']['city'] + ', ' \ + r['current_location']['state']
ACCESS_TOKEN = open('out/facebook.access_token').read() except IOError, e: try: # If you pass in the access token from the Facebook app as a command line # parameter, be sure to wrap it in single quotes so that the shell # doesn't interpret any characters in it. You may also need to escape # the # character ACCESS_TOKEN = sys.argv[1] except IndexError, e: print >> sys.stderr, \ "Could not either find access token in 'facebook.access_token' or parse args." ACCESS_TOKEN = login() fql = FQL(ACCESS_TOKEN) # get friend ids q = \ 'select target_id from connection where source_id = me() and target_type =\'user\'' my_friends = [str(t['target_id']) for t in fql.query(q)] # now get friendships amongst your friends. note that this api appears to return # arbitrarily truncated results if you pass in more than a couple hundred friends # into each part of the query, so we perform (num friends)/N queries and aggregate # the results to try and get complete results # Warning: this can result in a several API calls and a lot of data returned that # you'll have to process mutual_friendships = []
gapi = facebook.GraphAPI(ACCESS_TOKEN) groups = gapi.get_connections('me', 'groups') # Display groups and prompt the user for i in range(len(groups['data'])): print '%s) %s' % (i, groups['data'][i]['name']) choice = int(raw_input('Pick a group, any group: ')) gid = groups['data'][choice]['id'] # Find the friends in the group fql = FQL(ACCESS_TOKEN) q = \ """select uid from group_member where gid = %s and uid in (select target_id from connection where source_id = me() and target_type = 'user') """ \ % (gid, ) uids = [u['uid'] for u in fql.query(q)] # Filter the previously generated output for these ids filtered_rgraph = [n for n in rgraph if n['id'] in uids] # Trim down adjancency lists for anyone not appearing in the graph. # Note that the full connection data displayed as HTML markup # in "connections" is still preserved for the global graph.