Я знаю, что могу опоздать на год, но, поскольку у меня была та же проблема, и я использовал ваш код с вероятностью, которая сработала для ваших целей, я вернулся с рабочим кодом для тех, кто может прийти сюда с той же проблемой. Вот отредактированный код, который изначально был вашим.
public void ShowFriendList(string at, string id)
{
//var fb = new FacebookApp("My_APP_Id", "MySecret");
var accessToken = at;
Facebook.FacebookClient app = new Facebook.FacebookClient(accessToken);
var result = (Facebook.JsonObject)app.Get("/" + id + "/friends");
var model = new List<fbUser>(); //model = friendlist array
int i = 5; //limit to five friends
foreach (var friend in (Facebook.JsonArray)result["data"])
{
if (i != 0)
{
model.Add(new fbUser()
{
ID = (string)(((Facebook.JsonObject)friend)["id"]),
Name = (string)(((Facebook.JsonObject)friend)["name"])
});
i = i - 1;
}
else
{
break;
}
}
lblreport.Text += "<br/>";
foreach (fbUser res in model)
{
lblreport.Text += res.ID + "<br/>";
lblreport.Text += res.Name + "<br/>";
}
}
Я только заменил элемент управления выводом текста и класс Friend на метку lblreport и класс fbUser соответственно, просто замените их обратно, если хотите.
Единственное, что вы пропустили, это то, что вы использовали приложение access_token вместо зарегистрированного пользователя access_token, как вы и планировали. В противном случае ваш код был отличным примером для извлечения списка друзей из объекта Json Facebook, что я и сделал в первую очередь. Надеюсь, это поможет.
PS: я впервые отвечаю на stackoverflow, поэтому я надеюсь, что внесу свой вклад в этот замечательный ресурсный сайт.