Diego
Diego

Reputation: 651

Execute FQL query with facebook c# sdk v6.0.10

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

Answers (2)

Juicy Scripter
Juicy Scripter

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

prabir
prabir

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

Related Questions