Facebook FQL查询与Graph API对象访问的区别

Facebook FQL查询与Graph API对象访问的区别,facebook,facebook-fql,facebook-graph-api,Facebook,Facebook Fql,Facebook Graph Api,使用Facebook Graph API()访问用户数据与使用Graph API对同一用户()进行FQL查询有什么区别 还有,有人知道Facebook开发者工具包(用于ASP.NET)使用的是哪一个吗 我问这个问题的原因是,我试图在登录用户在我的网站上开始Facebook Connect会话后访问他们的生日,但当我使用工具包时,它不会返回它。但是,如果我为该用户对象手动调用GraphAPI,它会返回它。我从工具箱打电话可能有问题。我想我可能需要包含会话密钥,但我不确定如何获取它。以下是我使用的代

使用Facebook Graph API()访问用户数据与使用Graph API对同一用户()进行FQL查询有什么区别

还有,有人知道Facebook开发者工具包(用于ASP.NET)使用的是哪一个吗

我问这个问题的原因是,我试图在登录用户在我的网站上开始Facebook Connect会话后访问他们的生日,但当我使用工具包时,它不会返回它。但是,如果我为该用户对象手动调用GraphAPI,它会返回它。我从工具箱打电话可能有问题。我想我可能需要包含会话密钥,但我不确定如何获取它。以下是我使用的代码:

_connectSession = new ConnectSession(APPLICATION_KEY, SECRET_KEY);
        try
        {
            if (!_connectSession.IsConnected())
            {
                // Not authenticated, proceed as usual.
                statusResponse = "Please sign-in with Facebook.";
            }
            else
            {
                // Authenticated, create API instance
                _facebookAPI = new Api(_connectSession);

                // Load user
                user user = _facebookAPI.Users.GetInfo();

                statusResponse = user.ToString();

                ViewData["fb_user"] = user;

            }
        }
        catch (Exception ex)
        {
            //An error happened, so disconnect session
            _connectSession.Logout();
            statusResponse = "Please sign-in with Facebook.";
        }

我无法获得生日和其他我想要的信息的原因似乎是因为我没有一个可以请求的所有扩展权限的完整列表。我终于在(包括用户的生日)找到了这个列表


如果有人有关于FQL vs.Graph对象问题的信息,我仍然会对此感兴趣。虽然我认为它们基本上是一样的。

看起来这已经改变了它(是的,再次)。因为您使用的是facebook connect,所以您可以请求权限,以提供所需的信息,例如用户的生日,例如:

<fb:login-button perms="email,user_birthday"></fb:login-button>

更多信息:


Graph API和FQL的相似之处在于,它们都访问相同的Facebook底层对象:这些节点统称为“社交图”。GraphAPI是访问这些对象的一种简单、统一且相当直接的方法。如果您确切地知道您在寻找什么,那么Graph API是一种获取它的简单方法

另一方面,FQL是一种查询语言(类似于SQL)。它允许您搜索使用简单、直接的图形API不可能(或复杂)找到的图形对象

FQL在Graph API上的另一大特性是能够将多个查询批处理到一个调用中(这可以为多部分查询节省大量往返时间)


最终,GraphAPI似乎更直接地表示了社交图中“隐藏”的内容,因此我发现在可能的情况下使用它更简单。但是,如果我的Graph API请求变得非常长或不可理解(或者任何时候我需要对社交图进行多个相关查询),这就表明是时候切换到FQL了。

我也对两者之间的差异感兴趣。老话题——但这是我的.02:开放图摘要,去掉了“sql”在FacebookSQL中,设计速度要慢得多。如果您熟悉SQL,那么FBSQL只是对FB已经定义的列的SQL查询,它使您能够更好地控制返回的内容。对返回内容的更多控制、更精确的查询和更小的数据集可以提高性能,并且在进行简单查询时总是比Open Graph更快。Open graph更适合于需要大量联接和子查询的复杂查询,您首先应该避免这些联接和子查询。它们访问相同的内容,但实际上完全不同。见上面我的答案。