【问题标题】:Execute FQL query with facebook c# sdk v6.0.10使用 facebook c# sdk v6.0.10 执行 FQL 查询
【发布时间】:2012-03-19 13:53:52
【问题描述】:

我想执行 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 版本,我不知道我该怎么做。

有什么想法吗?

【问题讨论】:

    标签: facebook-c#-sdk


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您实际上可以通过 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);
      

      【讨论】:

      • 谢谢!有没有办法像以前一样获取用户的 facebook id:FacebookWebContext.Current.UserID?
      • 实际上,我在哪里可以找到一些文档?因为现在一切都不同了,官方网站没有提供完整的文档:(
      • SDK (csharpsdk.org) 的新地方似乎没有完整的文档,只有基础知识。新文档正在进行中...现在您可以深入研究代码以获取更多信息,并在 SDK 的 Build 文件夹中构建一个帮助文件(有一个文档“项目文件”(用于 Sandcastle Help File Builder)来源。
      • @prabir fbClient.Query() - 从曾经伟大的 Facebook C# 库中提取的另一个功能让我们自己弄清楚并实现自己:-/ 为什么???我基本上需要把上面的代码重新实现Query()
      • fql in rest api 很困难,所以我们有那个方法。当我们转向图形 api 时,我们做了一些技巧来保持兼容性,因此您不必更改代码。您可以在blog.prabir.me/post/… 阅读有关 fql 更改的信息。最好尽早破坏兼容性,因此我们在 v6 中将其删除。你可以看到这个丑陋的 hack github.com/facebook-csharp-sdk/facebook-csharp-sdk/blob/… 随意创建一个扩展方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多