FacebookClient _FacebookClient = new FacebookClient ( Settings.AccessToken ); FacebookClient.PostCompleted += new EventHandler ( _FacebookClient_PostCompleted ); FacebookClient.BatchAsync ( new FacebookBatchParameter [ ] { new FacebookBatchParameter( HttpMethod.Get , "/me/friends" , new Dictionary { { "fields" , "id , name , picture" } } ) { Data = new { name = "one-friend", omit_response_on_success = false } } , new FacebookBatchParameter{ Parameters = new { ids = "{result=one-friend:$.data.0.id}" } }, new FacebookBatchParameter("{result=one-friend:$.data.0.id}/statuses", new Dictionary { { "limit" , "1" } , { "data" , "0" } , { "fields" , "message" } } ) } ); string query0 = "SELECT uid2 FROM friend WHERE uid1 = me()"; //here you get the friends list string query1 = "SELECT uid, message, status_id FROM status WHERE uid IN (SELECT uid2 FROM #query0)"; //here you get the last statuse of each friend (max 50, or max from the last 30 days) string query2 = "SELECT uid, name FROM user WHERE uid IN (SELECT uid FROM #query1)"; //here you get the user data (in this case the name only) dynamic result = fb.Query(query0, query1, query2); //all results dynamic status = result[1][1]; //results of query1 dynamic friend = result[2][1]; //results of query2 for (int i = 0; i < result[1][1].Count; i++) { litFeedback.Text += "" + friend[i].name + " : " + status[i].message + "
" + Environment.NewLine; } //if not using .net 4.0: //var result = (IList)fb.Query(query1, query2); //var result0 = ((IDictionary)result[0])["fql_result_set"]; //var result1 = ((IDictionary)result[1])["fql_result_set"];