Facebook PHP API登录窗口弹出窗口

时间:2012-10-23 15:19:14

标签: php facebook api login sdk

我正在使用最新版本的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'
    ));
?>

2 个答案:

答案 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/