我按照here
步骤进行了操作我的应用程序不会重定向用户
$app_id = APP_ID;
$canvas_page = APP_LINK;
$auth_url = "http://www.facebook.com/dialog/oauth?client_id=". $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=email,read_stream";
echo "<script> top.location.href='" . $auth_url . "'</script>";
PS:我成功地用<fb:redirect>
重定向用户,但由于FBML在几个月内不会得到支持,我想找到另一种方式并且“top.location.href”应该有效:(
答案 0 :(得分:0)
你可能需要一个分号才能获得要执行的代码。此外,等号是必要的。 (谢谢David Barker)
$app_id = APP_ID;
$canvas_page = APP_LINK;
$auth_url = "http://www.facebook.com/dialog/oauth?client_id=". $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=email,read_stream";
echo "<script> top.location.href='" . $auth_url . "';</script>";
执行此操作后会得到什么:echo "<script> alert('".$auth_url."');</script>";
?
此外,在PHP中执行此操作的更简单方法如下:
$app_id = APP_ID;
$canvas_page = APP_LINK;
$auth_url = "http://www.facebook.com/dialog/oauth?client_id". $app_id . "&redirect_uri=" . urlencode($canvas_page) . "&scope=email,read_stream";
echo <<<EOT
<script>
top.location.href="$auth_url";
//checking the value of auth_url to see if that is the reason redirect is not happening.
if (window.console) {
console.log("$auth_url");
} else {
alert("$auth_url");
}
</script>
EOT;
使用heredoc语法你不必逃避任何东西,你可以在其中使用单引号和双引号,并且变量在字符串中本质上被替换。 ;)