0

我正在创建一个基本的 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;
?>
4

1 回答 1

1

因为您在 iframe 中工作,所以您必须执行 JavaScript 重定向。只有这样,您才能重定向最顶层的帧 -

echo "<script language=javascript>";
echo "top.location.href ='".$url."';";
echo "</script>";
exit();

这是在 Facebook 应用程序中进行完整重定向的唯一方法。任何其他重定向(例如使用 PHP)只会重定向iframe内的用户...

于 2012-08-30T10:39:30.190 回答