import java.util.*; import com.restfb.*; import com.restfb.types.*; public class FBPlay { public static void main(String[] args) { printPublicPostWithKeyword("Java"); System.out.println(); // temporary access token from http://developers.facebook.com/tools/explorer/ String token = ""; List myFriends = getMyFriends(token); printFriendGenders(myFriends); // map first names to their frequency Map names = new TreeMap(); for (User friend : myFriends) { if (names.containsKey(friend.getFirstName())) { names.put(friend.getFirstName(), names.get(friend.getFirstName()) + 1); } else { names.put(friend.getFirstName(), 1); } } System.out.println(names); // find the most popular first name String most = names.keySet().iterator().next(); for (String name : names.keySet()) { if (names.get(name) > names.get(most)) { most = name; } } System.out.println("Most popular name: " + most + " (" + names.get(most) + ")"); // what names map to what frequencies? Map> freqs = new TreeMap>(); for (String name : names.keySet()) { if (!freqs.containsKey(names.get(name))) { freqs.put(names.get(name), new ArrayList()); } freqs.get(names.get(name)).add(name); } for (int frequency : freqs.keySet()) { System.out.println(frequency + ": " + freqs.get(frequency)); } } // Find posts with the given keyword, print a random one with likes and // author public static void printPublicPostWithKeyword(String keyword) { FacebookClient publicFBClient = new DefaultFacebookClient(); Connection search = publicFBClient.fetchConnection("search", Post.class, Parameter.with("q", keyword), Parameter.with("type", "post")); List posts = search.getData(); int postCount = posts.size(); Post rand = search.getData().get((int) (Math.random() * postCount)); System.out.println(rand.getMessage()); System.out.println("Likes: " + rand.getLikesCount()); System.out.println("Author: " + rand.getFrom().getName()); } // returns a list of the authenticated user's friends public static List getMyFriends(String token) { FacebookClient privateFBClient = new DefaultFacebookClient(token); Connection myFriends = privateFBClient.fetchConnection( "me/friends", User.class, Parameter.with("fields", "first_name, gender")); return myFriends.getData(); } // print how many friends are female and how many are male public static void printFriendGenders(List myFriends) { int male = 0; int female = 0; System.out.println("Total: " + myFriends.size()); for (User friend : myFriends) { if (friend.getGender() != null) { if (friend.getGender().equals("male")) { male++; } else if (friend.getGender().equals("female")) { female++; } } } System.out.println("Female: " + female); System.out.println("Male: " + male); } }