CODE:
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on 2014-8-15
@author: guaguastd
@name: friendship_graph_visualize.py
'''
import networkx as nx
import requests
import json
from networkx.readwrite import json_graph
from IPython.display import IFrame
from IPython.core.display import display
ACCESS_TOKEN = ''
# impot login
from login import facebook_login
# access to facebook
facebook_api = facebook_login()
friends = [ (friend['id'], friend['name'],)
for friend in facebook_api.get_connections('me', 'friends')['data'] ]
url = 'https://graph.facebook.com/me/mutualfriends/%s?access_token=%s'
mutual_friends = {}
# spawn a separate request for each iteration
for friend_id, friend_name in friends:
r = requests.get(url % (friend_id, ACCESS_TOKEN,), verify=False )
response_data = json.loads(r.content)['data']
mutual_friends[friend_name] = [ data['name']
for data in response_data ]
nxg = nx.Graph()
[ nxg.add_edge('me', mf) for mf in mutual_friends ]
[ nxg.add_edge(f1, f2)
for f1 in mutual_friends
for f2 in mutual_friends[f1]]
nld = json_graph.node_link_data(nxg)
json.dump(nld, open(r'C:\python\resources\ch02-facebook\viz\force.json', 'w'))
viz_file = r'C:\python\resources\ch02-facebook\viz\force.html'
display(IFrame(viz_file, '100%', '600px'))
RESULT: