Reputation: 651
I would like to execute a FQL to retrieve all app user's friends.
In previous versions of the sdk it could be done with:
var client = new FacebookWebClient();
client.Query(String.Format("SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = {0})", me.id));
but with the version 6.0.10 I have no clue how can I do the same.
Any ideas?
Upvotes: 18
Views: 9488
Reputation: 25938
You can actually get the same with Graph API call:
var client = new FacebookClient();
var query = string.Format("SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = {0})", me.id);
dynamic parameters = new ExpandoObject();
parameters.q = query;
dynamic results = client.Get("/fql", parameters);
Upvotes: 17
Reputation: 7794
FQL
var fb = new FacebookClient("access_token");
dynamic result = fb.Get("fql",
new { q = "SELECT uid FROM user WHERE uid=me()" });
FQL Multi Query
var fb = new FacebookClient("access_token");
dynamic result = fb.Get("fql", new
{
q = new[]
{
"SELECT uid from user where uid=me()",
"SELECT name FROM user WHERE uid=me()"
}
});
FQL named multi-query
var fb = new FacebookClient("access_token");
dynamic result = fb.Get("fql",
new
{
q = new
{
id = "SELECT uid from user where uid=me()",
name = "SELECT name FROM user WHERE uid " +
"IN (SELECT uid FROM #id)",
}
});
Upvotes: 25