2011-01-09 164 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