2011-11-18 4 views
0

나는 단계 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은 몇 달에서 지원되지 않기 때문에 사용자를 리디렉션에 성공 작품 :(당신은 아마 실행하는 코드를 얻으려면 세미콜론이 필요

+2

URL 문자열에 = after client_id가 누락되었습니다. –

답변

0

해야한다 "top.location.href"다른 방법과를 찾고 싶어요. 또한, 등호가 필요합니다. (감사 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; 

당신의 끈. ;)

+0

답변 해 주셔서 감사합니다. 그러나 이러한 솔루션의 나를 위해 작동 :( 를 자바 스크립트에서 로그 내가 얻을 "Erreur가 : a93039401447_top이 정의되지 않은"페이스 북은 "top.location.href을"대체 내가 왜 "a93039401447_top.location.href"으로 이해하지 않습니다. ... 추신 :. 나는 페이스 북의 응용 프로그램에있어 – F2000

+0

사실, 내 경우에는 (FBML/FBJS와 응용 프로그램), 페이스 북은 자신에 의해 모두 "표준"자바 스크립트를 교체하고 난 리디렉션 할 해당이없는 생각 사람들이 .. (허용되지 않습니다.) – F2000

+0

첫 페이지가 리디렉션되지 않는 한 (301 리디렉션에서와 같이) 좋은 페이지 여야합니다. 승인 대화 상자를 가져 오는 데는/get and auth 토큰은 top.location.href 자바 스크립트 리디렉션을 수행하는 것입니다. 코드에 다른 문제가있을 수 있습니까? – Metagrapher

관련 문제