Redirect 如何将用户重定向到“身份验证”对话框?

Redirect 如何将用户重定向到“身份验证”对话框?,redirect,facebook-php-sdk,user-permissions,Redirect,Facebook Php Sdk,User Permissions,我跟着台阶走 我的应用程序不会重定向用户 $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.locat

我跟着台阶走

我的应用程序不会重定向用户

$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>";
$app\u id=app\u id;
$canvas\u page=应用程序链接;
$auth_url=”http://www.facebook.com/dialog/oauth?client_id=". $应用程序id。“&重定向_uri=”。urlencode($canvas\u页面)。“&scope=email,read_stream”;
echo“top.location.href=”$验证url。"'";

PS:我成功地用
重定向了用户,但由于FBML在几个月内将不受支持,我想找到另一种方法,并且“top.location.href”应该是有效的:(

您可能需要一个分号来执行代码。此外,还需要等号。(谢谢)

$app\u id=app\u id;
$canvas\u page=应用程序链接;
$auth_url=”http://www.facebook.com/dialog/oauth?client_id=“$app\u id.”&redirect\u uri=“.urlencode($canvas\u page)。“&scope=email,read\u stream”;
echo“top.location.href=”$auth_url.“;”;
执行此操作时会得到什么:
echo“警报(“$auth_url”);“

此外,在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;
$app\u id=app\u id;
$canvas\u page=应用程序链接;
$auth_url=”http://www.facebook.com/dialog/oauth?client_id“$app\u id.”&redirect\u uri=“.urlencode($canvas\u page)。“&scope=email,read\u stream”;

echo您在URL字符串中缺少一个=after client_id。感谢您的回复。但是这些解决方案中的任何一个都适合我:(在Javascript日志中,我得到“Erreur:a93039401447_top未定义”。我不明白Facebook为什么要将“top.location.href”替换为“a93039401447_top.location.href”…附:我在一个facebook应用程序中。事实上,在我的例子中(使用FBML/FBJS的应用程序),facebook用自己的javascript替换了所有“标准”javascript。我认为没有任何等价物可以重定向用户…(不允许…),只要你的第一页本身不是重定向(如301重定向)你应该很好。建议使用top.location.href javascript重定向来打开auth对话框/get和auth令牌。你的代码可能还有其他问题吗?事实上,如果我将应用程序的类型(应用程序内设置)从“FBML”更改为“iframe”,这会起作用。但是如果我的应用程序是“FBML”,javascript被Facebook重写,我无法使用此重定向。我想这就是他们创建(针对fbml应用程序)的原因。因此,目前我将保留,并且,有几天,我将切换到iframe应用程序。感谢您的帮助。当然,我很高兴。您应该知道,他们很快就会反对fbml,您的应用程序可能无法工作更长时间。;)干杯,快乐编码!
$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;