如果用户尚未添加应用,我正尝试将用户重定向到我的脸书应用中的权限页面。问题是使用以下内容只是将它们发送到一个带有大蓝色facebook徽标的页面,用户必须单击该徽标才能查看权限。
$login_url = $facebook->getLoginUrl(array(
'req_perms' => 'email,user_birthday,status_update,publish_stream,user_photos,user_videos',
));
header("Location: ".$login_url);
我正在使用iframe应用。任何帮助都会非常感激。
答案 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" />
答案 4 :(得分:0)
打开iframe所需的页面必须是facebook页面。否则你将永远得到那个蓝色的东西。 Facebook正在采取措施阻止向Facebook开放iframe。如果有人能告诉我们它是什么,它会很棒。
在这种情况下,我切换到了浏览器扩展程序。浏览器扩展可以使用跨站点脚本。不要浪费你的时间试图找到另一种方式。我浪费了3天阅读我发现的每一点信息,但都无济于事。