我在授权后将用户重定向回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;
}
}
答案 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>