我正在使用最新版本的facebook的php api sdk。我正在尝试使登录按钮激活弹出窗口而不是打开整页。我尝试使用本教程:http://thinkdiff.net/facebook/create-facebook-popup-authentication-window-using-php-and-javascript/
弹出窗口有效但当我登录时,而不是关闭弹出窗口,网站刚刚在弹出窗口内打开。
当我登录后,有人知道我需要做些什么来关闭弹出窗口吗?
这是我生成登录网址的php代码:
<?php
$loginUrl = $me_on_facebook->getLoginUrl(array(
'display' => 'popup',
'next' => $config['baseurl'],
'redirect_uri' => $config['baseurl'],
'scope' => 'email'
));
?>
答案 0 :(得分:16)
当弹出登录框加载并且用户登录/连接时,该框将加载网站,并在网址上附加?code = XXX。因此,对于该网站,我添加了一个php if语句
<?php
if (isset($_REQUEST['state']) && isset($_REQUEST['code'])) {
echo "<script>
window.close();
window.opener.location.reload();
</script>";
} else {
// load page
}
?>
这样做是关闭弹出窗口并重新加载启动弹出窗口的原始页面。
答案 1 :(得分:2)
您应该使用Facebook Javascript SDK并使用Javascript函数FB.login()授权用户。教程在这里http://developers.facebook.com/docs/reference/javascript/FB.login/