4

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

另外,有谁知道 Facebook 开发者工具包(用于 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.";
        }
4

3 回答 3

8

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

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

Another big feature FQL has over the Graph API is the ability to batch multiple queries into a single call (which can save you a lot of time in roundtrips for multipart queries).

Ultimately, the Graph API seems a more direct representation of what's going on "under the covers" in the social graph, so I find it simpler to use when I can. But if my Graph API request is getting really long or incomprehensible (or any time I need to make more than one related query of the social graph), that's the sign that it's time to switch over to FQL.

于 2011-12-15T03:26:52.700 回答
0

我无法获得我正在寻找的生日和其他信息的原因似乎是因为我没有可以请求的所有扩展权限的完整列表。我终于在http://developers.facebook.com/docs/authentication/permissions找到了列表(其中包括 user_birthday)。

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

于 2010-05-05T20:11:51.957 回答
0

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

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

更多信息:

http://developers.facebook.com/docs/guides/web#login

于 2010-05-05T20:22:49.573 回答