Facebook PHP API登录窗口弹出窗口
我使用的是facebook最新版本的php api sdk。我试图让登录按钮激活一个弹出窗口,而不是打开整个页面。我尝试使用本教程: 弹出窗口工作,但当我登录时,弹出窗口没有关闭,网站只是在弹出窗口中打开 有人知道我登录后要关闭弹出窗口需要做什么吗 以下是生成登录url的php代码:Facebook PHP API登录窗口弹出窗口,php,facebook,api,login,sdk,Php,Facebook,Api,Login,Sdk,我使用的是facebook最新版本的php api sdk。我试图让登录按钮激活一个弹出窗口,而不是打开整个页面。我尝试使用本教程: 弹出窗口工作,但当我登录时,弹出窗口没有关闭,网站只是在弹出窗口中打开 有人知道我登录后要关闭弹出窗口需要做什么吗 以下是生成登录url的php代码: <?php $loginUrl = $me_on_facebook->getLoginUrl(array( 'display' => 'popup', 'n
<?php
$loginUrl = $me_on_facebook->getLoginUrl(array(
'display' => 'popup',
'next' => $config['baseurl'],
'redirect_uri' => $config['baseurl'],
'scope' => 'email'
));
?>
您应该使用Facebook Javascript SDK,并使用Javascript函数FB.login()授权用户。教程就在这里当弹出式登录框加载并且用户登录/连接时,该框将加载附加到url的?code=XXX的站点。因此,对于该站点,我添加了一个php if语句
<?php
if (isset($_REQUEST['state']) && isset($_REQUEST['code'])) {
echo "<script>
window.close();
window.opener.location.reload();
</script>";
} else {
// load page
}
?>
这样做的目的是关闭弹出窗口并重新加载启动弹出窗口的原始页面。我的整个网站都基于facebook的php sdk。通过javascript sdk初始化登录不会影响这一点吗?使用javascript sdk时,使用cookie:true参数生成init()。所以,Javascript SDK将令牌保存在一个cookie中,然后您的PHP SDK使用该cookie。这里描述了Init(),所以Javascript和PHP SDK都可以在同一个站点上工作,并且它们将使用cookie共享同一个会话。