2011-01-09 166 views
0

有一些问题我有下面的代码提取我的朋友列表与一些特定的字段返回。将参数传递给FB Api()方法

public ActionResult Test() 
{ 
    fbApp = new FacebookApp(); 
    authorizer = new CanvasAuthorizer(fbApp); 
    authorizer.Perms = requiredAppPermissions; 

    if (fbApp.Session != null) 
    { 
     dynamic friendsFields = new ExpandoObject(); 
     friendsFields.fields = "id,name,location,bio,gender,religion,activities"; 
     JsonObject data = fbApp.Get("/me/friends", friendsFields); 

     ViewData["friends"] = data["data"] as JsonArray; 

     return View(); 
    } 
} 

我所要求的ID,名称,位置,生物,性别,宗教,活动领域,但结果不提交所有这些领域。只有ID,姓名,性别返回,这使得犯罪嫌疑人什么是错的...如果我尝试使用浏览器并传递结果返回所有必填字段的字段来获得相同的数据:

URL: https://graph.facebook.com/me/friends?fields=id,name,bio,gender,picture,religion,activities&access_token=... 
    "data": [ 
     { 
     "id": "data_data_data", 
     "name": "data_data_data", 
     "bio": "data_data_data", 
     "gender": "data_data_data", 
     "religion": "data_data_data", 
     "picture": "data_data_data", 
     "activities": { 
      "data": [ 
       { 
        "name": "data_data_data", 
        "category": "data_data_data", 
        "id": "data_data_data", 
        "created_time": "data_data_data" 
       } 
      ] 
     } 
     }, 
     { 
     "id": "data_data_data", 
     "name": "data_data_data", 
     "bio": "data_data_data", 
     "gender": "data_data_data", 
     "picture": "data_data_data" 
     } 
    ] 
} 

任何人有任何想法这里可能是错误的吗?它可以是API吗?我正在使用最新版本4.1.1

TIA!

回答

0

您必须投射Get方法的结果或动态访问它。这里是修正后的代码,授权也是固定的。

[CanvasAuthorize(Perms="user_friends")] 
public ActionResult Test() 
{ 
    var fbApp = new FacebookApp(); 
    dynamic friendsFields = new ExpandoObject(); 
    friendsFields.fields = "id,name,location,bio,gender,religion,activities"; 
    dynamic result = fbApp.Get("/me/friends", friendsFields); 

    var data = result.data as JsonArray; 
    ViewData["friends"] = data; 

    return View(); 
} 
+0

嗨弥敦!你的代码和我的代码不一样吗?顺便说一句,在视图代码中你将如何获得字段?谢谢。 – 2011-01-09 01:03:54