授权后Facebook iframe应用程序重定向到Facebook页面选项卡

时间:2010-11-10 09:40:49

标签: php tabs facebook authorization

我在授权后将用户重定向回Facebook页面中的应用标签时出现问题。我总是在独立的应用程序画布页面中结束。

  

修改   它本来是一个应用程序选项卡   在Fb页面内。我想做的   授权然后重定向   用户返回页面选项卡。但是,当你这样做   这个标签看起来和以前一样   并且似乎用户喜欢错误   因为他来自授权和   选项卡中的应用程序看起来相同。他有   点击它来得到某种东西   回复或消息。

是否有任何可以下载的示例或某种分步教程。这是我的代码:

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'cookie' => true,
));

//Facebook Authentication part
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
        array(
        'canvas'    => 1,
        'fbconnect' => 0,
        )
);

$uid = null; //facebook user id
$fbme = null;

if (!$session) {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}
else {
    try {
        $uid  = $facebook->getUser();
        $fbme = $facebook->api('/me?fields[]=id&fields[]=last_name&fields[]=first_name');
    }
    catch (FacebookApiException $e) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }
}

1 个答案:

答案 0 :(得分:3)

别介意我在页面选项卡中使用Ajax完成了授权。此方法也在问题“Facebook fan page tab and user id.”中描述:

<div id="intro">
    <a onclick="load_iframe();"><img src="<?php echo $fbconfig['baseUrl'], 'intro.jpg' ?>" /></a>
</div>
<div id="fb-root"></div>

<script type="text/javascript" charset="utf-8">

    function load_iframe()
    {
        var intro = document.getElementById('intro');
        var root = document.getElementById('fb-root');

        var ajax = new Ajax();
        ajax.responseType = Ajax.FBML;
        ajax.onerror = function(error)
        {
            new Dialog().showMessage("Alert", "Required authorization.","Close");
        };

        ajax.ondone = function(data)
        {
            intro.setStyle('display', 'none');
            root.setInnerFBML(data);
        }
        ajax.requireLogin = true;
        ajax.post("<?php echo $fbconfig['baseUrl'] ?>iframe.php");
    }
</script>