BatchFB provides a modern Java API that allows you to easily optimize your Facebook calls to a minimal set:
http://code.google.com/p/batchfb/
Here is an example taken from the main page of what you can effectively do in a single FB request:
public class User { long uid; @JsonProperty("first_name") String firstName; String pic_square; String timezone; } Batcher batcher = new FacebookBatcher(accessToken); Later<User> me = batcher.graph("me", User.class); Later<User> mark = batcher.graph("markzuckerberg", User.class); Later<List<User>> myFriends = batcher.query( "SELECT uid, first_name, pic_square FROM user WHERE uid IN" + "(SELECT uid2 FROM friend WHERE uid1 = " + myId + ")", User.class); Later<User> bob = batcher.queryFirst("SELECT timezone FROM user WHERE uid = " + bobsId, User.class); PagedLater<Post> feed = batcher.paged("me/feed", Post.class);
stickfigure
source share