首页 文章

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

提问于
浏览
18

我想执行一个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));

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

有任何想法吗?

2 回答

  • 25

    FQL

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

    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()"
                    }
        });
    

    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)",
                }
            });
    
  • 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);
    

相关问题