使用facebook c#sdk v6.0.10执行FQL查询

Die*_*ego 18 facebook-c#-sdk

我想执行一个FQL来检索所有应用程序用户的朋友.

在先前版本的sdk中,可以使用:

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));
Run Code Online (Sandbox Code Playgroud)

但是对于6.0.10版本,我不知道如何才能做同样的事情.

有任何想法吗?

pra*_*bir 25

FQL

var fb = new FacebookClient("access_token");
dynamic result = fb.Get("fql", 
    new { q = "SELECT uid FROM user WHERE uid=me()" });
Run Code Online (Sandbox Code Playgroud)

FQL多查询

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()"
                }
    });
Run Code Online (Sandbox Code Playgroud)

FQL命名为多查询

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)",
            }
        });
Run Code Online (Sandbox Code Playgroud)


Jui*_*ter 17

您可以通过Graph API调用实际获得相同的内容:

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);
Run Code Online (Sandbox Code Playgroud)