Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查Facebook登录状态:客户端与服务器端_Php_Javascript_Facebook - Fatal编程技术网

Php 检查Facebook登录状态:客户端与服务器端

Php 检查Facebook登录状态:客户端与服务器端,php,javascript,facebook,Php,Javascript,Facebook,在我正在创建的网站中,我需要检查用户是否登录到facebook。我有两种可能性。我可以在服务器端使用如下PHP代码进行操作: $facebook = new Facebook(array( 'appId' => _FACEBOOK_APP_ID, 'secret' => _FACEBOOK_SECRET, 'cookie' => true)); $me = $facebook-&g

在我正在创建的网站中,我需要检查用户是否登录到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.
}
FB.getSession();
if (session != null) {
    // User is logged in.
} else {
    // User is not logged in
}
或者,我可以在客户端使用如下javascript进行操作:

$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.
}
FB.getSession();
if (session != null) {
    // User is logged in.
} else {
    // User is not logged in
}

我想知道这两种方法的优缺点是什么。

我想主要的区别是,在客户端,客户端和facebook之间建立了连接。在服务器端,它位于您的服务器和facebook之间。因此,如果您在服务器端执行所有操作,那么服务器的负载可能会很高

  • 您的“服务器端”方法不正确。只要您使用的是PHP-SDK,我建议您遵循随库附上的方法(在进行图形调用之前检查会话
    $facebook->getSession();
  • 你需要“理解”你真正“需要”的东西!
    检查用户是否“登录到Facebook”并不意味着他“已连接到您的应用程序/网站”

  • 我建议您再读一次,以便更好地理解API。

    我只想指出,您展示的JavaScript替代方案已被弃用,不再有效,docs链接(http://developers.facebook.com/docs/reference/javascript/FB.getSession/)重定向到新的getAuthSession()函数以处理OAuth2

    截至2011年12月13日,JavaScript SDK现在只支持OAuth 2.0进行身份验证 在JSSDK中启用OAuth 2.0的功能于7月份首次引入。所有应用程序都提供到 2011年10月1日进行测试和迁移。通过此更改,请确保您正在使用 FB.getAuthResponse以获取访问令牌,而不是FB.getSession。请阅读有关特定会话的详细信息 改变她