0

我使用 Facebook PHP SDK 将 facebook 与我的网站集成,我已经登录了我的 facebook 帐户,但是当我进入我的网站时,不会发生自动登录?

    $facebook = new Facebook(array(
      'appId'  => XXXXXX,
      'secret' => XXXXXXXXXXXXXX,
    ));



$user = $facebook->getUser();

// Login or logout url will be needed depending on current user state.
if ($user) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl();
}

这里$user的值为“0”,在我进入 Facebook 帐户后进入我的网页。

如果我通过我网站的 facebook 登录登录。它有效,即$user会得到一个ID。

4

1 回答 1

0

但是当我进入我的网站时,不会发生自动登录?

单独的 PHP SDK 无法为重新访问您页面的用户提供自动登录,因为它无法读取 Facebook 在自己域下设置的 cookie。

你必须将它与JS SDK结合起来,它可以进行跨域请求,因此能够确定当前登录Facebook的用户以及他们之前是否访问过你的页面并使用过你的应用程序。

FB.getLoginStatus是为此使用的方法;如果它返回用户已经连接到您的应用程序,您可能会触发从 JavaScript 重新加载您的页面,以便 PHP SDK 也会知道用户。(如果您不重新加载页面,PHP 只会在用户下次单击您页面中的链接时才知道用户,从而触发对您服务器的下一个请求。)

于 2012-08-07T09:29:39.840 回答