Как перенаправить пользователя в Auth Dialog? - PullRequest
0 голосов
/ 18 ноября 2011

Я следовал за шагами здесь

И мое приложение не перенаправляет пользователя

$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" должен работать: (

1 Ответ

0 голосов
/ 18 ноября 2011

вам, вероятно, нужна точка с запятой, чтобы получить код для выполнения.Также необходим знак равенства.(Спасибо Дэвид Баркер )

$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, вам не нужно ничего экранировать, вы можете использовать одинарные и двойные кавычки внутри, а переменные по своей сути заменяются в вашей строке.;)

...