在我正在构建的网站中,我需要检查用户是否登录到Facebook。我有两种可能性。我可以在服务器端执行此操作,使用以下PHP代码:
$facebook = new Facebook(array(
'appId' => _FACEBOOK_APP_ID,
'secret' => _FACEBOOK_SECRET,
'cookie' => true));
$me = $facebook->api("/me");
if (isset($me["id"]) {
// User is logged in.
} else {
// User is not logged in.
}
或者,我可以在客户端进行,使用如下的javascript:
FB.getSession();
if (session != null) {
// User is logged in.
} else {
// User is not logged in
}
我想知道这两种方法的优点和缺点是什么。
答案 0 :(得分:1)
$facebook->getSession();
。我建议您再次阅读Facebook Documentation以更好地了解API。
答案 1 :(得分:1)
我只想指出您展示的JavaScript替代品已弃用且不再有效,文档链接(http://developers.facebook.com/docs/reference/javascript/FB.getSession/)重定向到用于处理OAuth2的新getAuthSession()函数
截至2011年12月13日,JavaScript SDK现在仅支持OAuth 2.0进行身份验证。该 能够在JS SDK中启用OAuth 2.0的能力于7月首次推出。所有应用程序都是直到 2011年10月1日进行测试和迁移。有了这个改变,请确保您正在使用 FB.getAuthResponse获取访问令牌而不是FB.getSession。详细了解具体内容 改变她
答案 2 :(得分:0)
我猜主要区别在于,在客户端,客户端和Facebook之间建立了连接。在服务器端,它位于您的服务器和Facebook之间。因此,如果您在服务器端执行所有操作,则服务器的负载会很高。