9

我正在使用最新版本的 facebook 的 php api sdk。我正在尝试使登录按钮激活弹出窗口,而不是打开整个页面。我尝试使用本教程:http ://thinkdiff.net/facebook/create-facebook-popup-authentication-window-using-php-and-javascript/

弹出窗口有效,但是当我登录时,弹出窗口没有关闭,网站只是在弹出窗口中打开。

有人知道我登录后需要做什么才能关闭弹出窗口吗?

这是我用于生成登录 url 的 php 代码:

<?php
    $loginUrl = $me_on_facebook->getLoginUrl(array(
        'display' => 'popup',
        'next' => $config['baseurl'],
        'redirect_uri' => $config['baseurl'],
        'scope' => 'email'
    ));
?>
4

2 回答 2

16

当弹出登录框加载并且用户登录/连接时,该框然后加载带有 ?code=XXX 附加到 url 的站点。所以对于该站点,我添加了一个 php if 语句

<?php
    if (isset($_REQUEST['state']) && isset($_REQUEST['code'])) {
        echo "<script>
            window.close();
    window.opener.location.reload();
        </script>";
} else {
        // load page
    }
?>

这样做是关闭弹出窗口并重新加载启动弹出窗口的原始页面。

于 2012-10-23T19:33:10.710 回答
2

您应该使用 Facebook Javascript SDK 并使用 Javascript 函数 FB.login() 授权用户。教程在这里http://developers.facebook.com/docs/reference/javascript/FB.login/

于 2012-10-23T15:23:08.827 回答