我正在编写libraty,这将通过使用C#Facebook SDK('如何发送消息',我会在这里看到一些主题,因此这不是主要内容来为来自Facebook的用户朋友提供interfase并发送所有消息现在,我需要得到用户朋友)。
所以我创建应用程序,添加Facebook Libreary,在Facebook上创建应用程序并获得APP_ID和APP秘密。
我尝试第3天使用他们的文档来编写somting。这就是我得到的:
var fb = new FacebookApp("My_APP_Id", "MySecret");
var accessToken = fb.Session.AccessToken;
var app = new FacebookApp(accessToken);
var result = (JsonObject)app.Get("/HereMyId/friends");
var model = new List<Friend>();
foreach (var friend in (JsonArray)result["data"])
model.Add(new Friend()
{
Id = (string) (((JsonObject) friend)["id"]),
Name = (string) (((JsonObject) friend)["name"])
});
text.Text += "<br/>";
foreach (Friend res in model)
{
text.Text += res.Id + "<br/>";
text.Text += res.Name + "<br/>";
}
public class Friend
{
public string Id { get; set; }
public string Name { get; set; }
}
我有下一个错误:
无法查找100002435634的所有朋友。只能使用相应的权限查找登录用户(0)或登录用户的朋友。
我应该如何登录用户?也许我不明白它应该如何运作。
所以我有几个问题:
我可以接受用户的登录和通过并连接一些方法,或者我可以给应用程序一些权限,或者它应该如何工作?
如何从Facebook获取有关朋友的信息?
答案 0 :(得分:1)
您的Facebook应用程序注册必须明确声明您需要permission to read朋友列表。在身份验证期间,所需权限为passed in using the scope parameter。
答案 1 :(得分:1)
我知道我可能会迟到一年但是因为我遇到了同样的问题,并且利用了你的代码并且有可能为你的目的而工作,我回来时为那些可能来这里遇到同样问题的人提供了工作代码。以下是最初由您编辑的代码。
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/>";
}
}
我只分别用lblreport标签和fbUser类替换了文本输出控件和Friend类,如果你愿意,可以替换它们。
您唯一遗漏的是您按计划使用应用程序access_token而不是登录用户的access_token。否则你的代码就是从Facebook Json对象中提取朋友列表的一个很好的例子,这就是我首先想到的。我希望这有帮助。 PS:这是我第一次回答stackoverflow,所以我希望我能为这个优秀的资源网站做出贡献。
答案 2 :(得分:0)
var client = new FacebookClient(access_token);
var result = client.Get("/me/friends?fields=picture,name") as JsonObject;
JavaScriptSerializer js = new JavaScriptSerializer();
string str = result ["data"].ToString();
List<Friends> objFriends = (List<Friends>)js.Deserialize(str, typeof(List<Friends>));