2011-05-25 62 views
0

我正在编写libraty,它会给予interfase geting用户的朋友,从Facebook,并通过使用C#Facebook SDK('如何发送消息',我看到这里的一些主题,所以这不是主要的现在,我需要得到用户朋友)。如何从Facebook获取用户的朋友,并通过使用C#Facebook SDK向他们发送所有消息?

因此,我创建应用程序,添加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),或登录用户与朋友适当的许可。

我该如何登录用户?也许我不明白它应该如何工作。

所以,我有几个问题:

  1. 我可以利用用户的登录名和通行证和连接一些如何,也许我可以给一些权限的应用程序,或者它应该如何工作的?

  2. 如何从facebook获取关于朋友的信息?

+1

你的拼写是可怕的。你能清理一下吗? – 2011-05-25 13:07:08

+0

我不是100%,但您可能还需要使用“/我/朋友”,而不是ID – Rup 2011-05-25 13:18:09

回答

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类分别只需更换他们回来,如果你喜欢。

你错过的唯一的事情就是你用ACCESS_TOKEN,而不是因为你计划做在用户登录的access_token应用。否则,你的代码就是一个很好的例子,可以从Facebook Json对象中提取朋友列表,这正是我之前做的。我希望这有帮助。 PS:这是我第一次在stackoverflow上回答,所以我希望我对这个伟大的资源网站有所贡献。

+0

您正在使用哪个facebook SDK?我无法找到我的Facebook Json对象 – abhi 2013-03-05 16:54:39

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>)); 
相关问题