标题位置在Facebook应用程序中不起作用

时间:2011-01-19 01:48:27

标签: php facebook

如果用户尚未添加应用,我正尝试将用户重定向到我的脸书应用中的权限页面。问题是使用以下内容只是将它们发送到一个带有大蓝色facebook徽标的页面,用户必须单击该徽标才能查看权限。

$login_url = $facebook->getLoginUrl(array(
    'req_perms' => 'email,user_birthday,status_update,publish_stream,user_photos,user_videos',

));

header("Location: ".$login_url);

我正在使用iframe应用。任何帮助都会非常感激。

5 个答案:

答案 0 :(得分:4)

在Facebook Canvas应用中获得重定向工作的唯一方法是通过客户端重定向:

<script>
    top.location.href="<?php echo $login_url; ?>";
</script>

答案 1 :(得分:3)

在“ob_start();”之间尝试和“ob_end_flush();”

例如:

<?php ob_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Title</title>
    </head>

    <body>
        <?php
        header(Location : http://site.com/path/url.php ");
        ?>
    </body>
</html>
<?php
ob_end_flush();
?>

答案 2 :(得分:1)

Iframe应用程序应该在canvas iframe中运行,但也应该能够作为独立站点运行。这是我们用来首先检测我们是否在iframe中然后传递正确的'next'值以便用户回到正确页面的javascript / php代码:

if (top.location != location) { // in iframe
    top.location.href = "<?=$facebook->getLoginUrl(array('next' => 'http://apps.facebook.com/myapp/'))?>";
} else {
    location.href = "<?=$facebook->getLoginUrl(array('next' => 'http://www.myapp.com/'))?>";
}

答案 3 :(得分:0)

如果您正在使用FBML,请尝试此

<fb:redirect url="http://apps.facebook.com/myapp/?not_in_group" />

Check Documentation

答案 4 :(得分:0)

杰森我在Flex和Javascript中经历过同样的事情。没有其他任何东西的大蓝色Facebook徽标。

打开iframe所需的页面必须是facebook页面。否则你将永远得到那个蓝色的东西。 Facebook正在采取措施阻止向Facebook开放iframe。如果有人能告诉我们它是什么,它会很棒。

在这种情况下,我切换到了浏览器扩展程序。浏览器扩展可以使用跨站点脚本。不要浪费你的时间试图找到另一种方式。我浪费了3天阅读我发现的每一点信息,但都无济于事。