FQL查询和Graph API对象访问之间的差异

jwy*_*een 4 facebook facebook-fql facebook-graph-api

使用Facebook Graph API(http://graph.facebook.com/btaylor)访问用户数据和使用Graph API对同一用户进行FQL查询之间的区别是什么(https://api.facebook.com/ method/fql.query?query = QUERY).

另外,有谁知道Facebook Developer Toolkit(用于ASP.NET)使用哪些?

我问的原因是因为我试图在我的网站上开始Facebook Connect会话后访问登录用户的生日,但是当我使用工具包时它不会返回它.但是,如果我为该用户对象手动调用Graph API,它会返回它.我可能从工具包中调用了我的错误.我想我可能需要包含会话密钥,但我不知道如何获得它.这是我正在使用的代码:

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

jem*_*ons 8

Graph API和FQL类似,因为它们都访问相同的底层Facebook对象:统称为"社交图"的节点.Graph API是一种访问这些对象的简单,统一且相当直接的方式.如果您确切知道自己在寻找什么,那么Graph API是一种获取它的简单方法.

另一方面,FQL是一种查询语言(如SQL).它允许您使用简单的直接Graph API搜索无法(或复杂)查找的图形对象.

FQL相对于Graph API的另一个重要功能是能够将多个查询批量处理为单个调用(这可以为多部分查询的往返节省大量时间).

最终,Graph API似乎更直接地表示社交图中"幕后"的内容,因此我发现在可以使用时更简单.但是,如果我的Graph API请求变得非常长或难以理解(或者我需要对社交图进行多个相关查询),那就是切换到FQL的时候了.