CODE:
#!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-13 @author: guaguastd @name: common_friends_finding.py ''' # impot login from login import facebook_login # import helper #from helper import pp # import PrettyTable from prettytable import PrettyTable from collections import Counter from operator import itemgetter # access to facebook facebook_api = facebook_login() # get friends like through single request #friends_like = facebook_api.get_object('me', fields='id,name,friends.fields(id,name,likes)') #pp(friends_like) # get friends like through multi request friends = facebook_api.get_connections("me", "friends")['data'] likes = { friend['name'] : facebook_api.get_connections(friend['id'], "likes")['data'] for friend in friends[:10]} friends_likes = Counter([like['name'] for friend in likes for like in likes[friend] if like.get('name')]) # Which of your likes are in common with which friends my_likes = [ like['name'] for like in facebook_api.get_connections("me", "likes")['data'] ] # Use the set intersection as represented by the ampersand # operator to find common likes common_likes = list(set(my_likes) & set(friends_likes)) # Which of your friends like things that you like? similar_friends = [ (friend, friend_like['name']) for friend, friend_likes in likes.items() for friend_like in friend_likes if friend_like.get('name') in common_likes ] # Filter out any possible duplicates that could occur ranked_friends = Counter([ friend for (friend, like) in list(set(similar_friends)) ]) pt = PrettyTable(field_names=["Friend", "Common Likes"]) pt.align["Friend"], pt.align["Common Likes"] = 'l', 'r' [ pt.add_row(rf) for rf in sorted(ranked_friends.items(), key=itemgetter(1), reverse=True)] print "My similar friends (ranked)" print pt
RESULT:
My similar friends (ranked) +--------------------------+--------------+ | Friend | Common Likes | +--------------------------+--------------+ | Los Mas Lindos del Mundo | 1 | | Soofi Cat | 1 | | Jorge Rodriguez | 1 | | Kevin Swaggy | 1 | +--------------------------+--------------+
Python 获取Facebook用户与其有共同爱好的Friends
时间: 2024-10-06 12:15:44