我正在 Visual Studio 2013 中试验用于 MVC 5 的新 Facebook 项目模板。我在MyAppUserFriend
类中添加了一个 Location 属性来获取每个朋友的位置。我需要为有位置的朋友过滤位置结果。换句话说,我不想返回位置字段为空的朋友。
下面是获取MyAppUser
和MyAppUserFriend
结果的方法。
[FacebookAuthorize("email", "user_photos", "friends_location")]
public async Task<ActionResult> Index(FacebookContext context)
{
if (ModelState.IsValid)
{
var user = await context.Client.GetCurrentUserAsync<MyAppUser>();
return View(user);
}
return View("Error");
}
这是 MyAppUserFriend 的类。据我了解,我可以使用 FacebookFieldModifier 属性过滤结果,但我找不到可用的字段修饰符,除了search?type=location¢er=37.76,-122.427&distance=1000
public class MyAppUserFriend
{
public string Id { get; set; }
public string Name { get; set; }
public string Link { get; set; }
public FacebookLocation Location { get; set; }
public double Distance { get; set; }
[FacebookFieldModifier("height(100).width(100)")] // This sets the picture height and width to 100px.
public FacebookConnection<FacebookPicture> Picture { get; set; }
}
更新:
我尝试了 FQL 语句,但无法过滤位置结果,因为“current_location”字段不可索引,因此不能在WHERE子句中使用。
我还研究了搜索查询,但这些只是有限的公共对象,而且搜索查询似乎不能与位置参数和/或 FQL 语句结合使用。
关于字段修饰符,它们在位置对象上可用,仅限于“限制”和“uid”,因此我无法使用字段修饰符以我需要的方式限制结果。我能够在图形浏览器中找到字段修饰符,以防将来有人遇到这个问题。