prog-with-fb

If you query the Graph API with http://graph.facebook.com/USERID you will get:

"id": "USERID",

"name": "NAME",

"first_name": "FirstNAME",

"last_name": "LASTNAME",

"link": "LINK",

"username": "THETHINGYOUWANT",

"gender": "GENDER",

"locale": "LANGUAGE"

The picture of a user can be gotten by http://graph.facebook.com/"+response.id+"/picture

fb_friends_url = "https://www.facebook.com/ajax/typeahead/search/bootstrap.php?__a=1&filter[0]=user&viewer=1141800361&token=v7&lazy=0&__user=1141800361"

The source code of a user's home has a initial array containing the list of friends like following

["InitialChatFriendsList",[],{"list":["100000246711414", ... ,"100004424260429"]}]

A short script developed by Jeremy Keeshin can be used to list Facebook Friend Rankings. The following script code is added as a bookmark.

javascript:(function(){var script=document.createElement('script');script.type='text/javascript';script.src='http://thekeesh.com/js/edges2.js';document.getElementsByTagName('body')[0].appendChild(script);}())

The following is the source of the javascript.

//var fb_friends_url = "https://www.facebook.com/ajax/typeahead/search/bootstrap.php?__a=1&filter[0]=user&viewer=1141800361&token=v7&lazy=0&__user=1141800361";
/*
 * Plugin by Jeremy Keeshin
 * Using jQuery javascript library
 * Information from Facebook
 *
 * Updated February 14, 2012
 *
 * - Now uses the matching protocol
 * - Changed to use the bootstrap.php filename
 */
$.ajax({
    url: window.location.protocol + "//www.facebook.com/ajax/typeahead/search/bootstrap.php",
    data: "__a=1&filter[0]=user&lazy=0&viewer="+Env.user+"&token=v7&stale_ok=0",
    dataType: 'JSON',
    success: function(result){
        alert('Please try again.');
    },
    error: function(data){
        var text = data.responseText;
        var json = text.substring(text.indexOf('{'));
       
        var friends = $.parseJSON(json);
        friends = friends.payload.entries;
        var display = $("<div id='friend-edge-display'></div>");       
        for(var i = 0; i < friends.length; i++){
            var info = "<div class='friend-edge'><span class='friend-edge-name'>" + friends[i].text + "</span><span class='friend-edge-index'>" + friends[i].index + "</span></div>";
            $(display).append(info);
        }
        $('body').append(display);
        var by = $("<div id='friend-edge-by'><a href='http://thekeesh.com'>Bookmarklet by Jeremy Keeshin</a></div><br/>");
        display.prepend(by);
        var title = $("<div id='friend-edge-title'>Facebook Friend Rankings</div>");
        display.prepend(title);
        $('#friend-edge-title').css('font', '20px bold "helvetica neue"');
        $('#friend-edge-title').css('margin-bottom', '10px');
        $('#friend-edge-display').css('position', 'absolute');
        $('#friend-edge-display').css('top', '100px');
        $('#friend-edge-display').css('width', '500px');
        $('#friend-edge-display').css('margin-left', '-309px');
        $('#friend-edge-display').css('left', '50%');
        $('#friend-edge-display').css('background', 'white');
        $('#friend-edge-display').css('z-index', '9999');   
        $('#friend-edge-display').css('font-size', '14px');   
        $('#friend-edge-display').css('padding', '15px');
        $('#friend-edge-display').css('border-radius', '12px');       
        $('#friend-edge-display').css('border', '8px solid black');
        $('.friend-edge').css('margin-top', '5px');
       
        $('.friend-edge-name').css('width', '250px');       
        $('.friend-edge-name').css('display', 'inline-block');
    }
});