我正在创建一个基本的Facebook应用,当用户未经许可访问该应用时,他们会被重定向到授权页面。但是,页面不显示,我看到以下错误。
此内容无法在框架中显示
在新窗口中打开它然后显示我的应用程序的授权页面。单击“转到应用程序”然后将我带到应用程序,但在它自己的窗口中,远离Facebook。回到FB并重新编写App页面现在可以正常工作。
更奇怪的是,当我退出并转到我的应用页面时,我得到了一个Facebook 404页面(4oh4.php)。
我猜我在某种程度上做错了,所以任何人都可以看到我的脚本有什么明显的错误吗?感谢。
要了解发生了什么 - http://apps.facebook.com/dyne_drewett_news/
<?php
require 'fb/facebook.php';
$fbconfig['appUrl'] = 'my-app-url'; // Create An instance of our Facebook Application.
$facebook = new Facebook(array(
'appId' => 'my-app-ID', // Entered correctly in actual script
'secret' => 'me-app-secret', // Entered correctly in actual script
'cookies' => 'true',
));
// Get the app User ID
$user = $facebook->getUser();
if($user) :
try{ // If the user has been authenticated then proceed
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e){
error_log($e);
$user = null;
}
endif;
// If the user is authenticated then generate the variable for the logout URL
if($user) :
$logoutUrl = $facebook->getLogoutUrl();
?>
<!-- My HTML goes here -->
<?php
else :
$loginUrl = $facebook->getLoginUrl();
header('Location: '.$loginUrl);
endif;
?>
答案 0 :(得分:1)
因为您使用的是iframe,所以您必须执行JavaScript重定向。只有这样,你才能重定向最顶层的框架 -
echo "<script language=javascript>";
echo "top.location.href ='".$url."';";
echo "</script>";
exit();
这是在Facebook应用程序中完成重定向的唯一方法。任何其他重定向(例如PHP)只会重定向用户 iframe ...