我使用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。
答案 0 :(得分:0)
但是当我进入我的网站时,自动登录不会发生?
单独的PHP SDK无法自动登录重新访问您网页的用户,因为它无法读取在自己的域下设置的Facebook的Cookie。
您必须将其与JS SDK结合使用,JS SDK可以执行跨域请求,因此能够确定当前登录到Facebook的用户以及他们是否已访问过您的网页并使用过您的应用。
FB.getLoginStatus
是用于此的方法;如果它返回用户已连接到您的应用程序,您可能会触发从JavaScript重新加载您的页面,以便PHP SDK也将知道用户。 (如果您没有重新加载页面,PHP只会在用户下次点击您页面中的链接后才知道该用户,从而自动触发对您服务器的下一个请求。)