2012-11-15 4 views
0

최근 페이스 북에서 테스트 앱을 만들었습니다.이 앱은 웹 사이트 앱이며 PHP 로그인 화면에서 사용자 정보에 액세스 할 수 있도록 사용자 로그인이 필요합니다. 먼저 테스트, 로그인 프로세스가 완벽하게 작동, 문제는, 내가 테스트 페이지에 도달했을 때, 그것은 완전히 비어 있습니다. 반향이 예상되는 반면 : "이름"이 내 이름이 될 안녕 이름, 여기에 코드가 있습니다. 사람들은 확실히 인해 로그인 프로세스가 잘되기 위해서는, 작업하는 등 비밀 응용 프로그램 ID를 게시하지 않습니다facebook server side 로그인 결과가 공백 페이지

$app_id = "xxxxxxxxxxxx"; 
    $app_secret = "xxxxxxxxxxxxxxxxxxxxxx"; 
    $my_url = "http://www.anithro.com/anithroproject/login.php/"; 
    session_start(); 
    $code = $_REQUEST["code"]; 

    if(empty($code)) { 
// Redirect to Login Dialog 
    $_SESSION['state'] = md5(uniqid(rand(), TRUE)); // CSRF protection 
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state=" 
    . $_SESSION['state'] . "&scope=user_birthday,read_stream"; 

echo("<script> top.location.href='" . $dialog_url . "'</script>"); 
    if($_SESSION['state'] && ($_SESSION['state'] === $_REQUEST['state'])) { 
// state variable matches 
    $token_url = "https://graph.facebook.com/oauth/access_token?" 
    . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) 
    . "&client_secret=" . $app_secret . "&code=" . $code; 

$response = file_get_contents($token_url); 
$params = null; 
parse_str($response, $params); 
$_SESSION['access_token'] = $params['access_token']; 
$graph_url = "https://graph.facebook.com/me?access_token=" 
    . $_SESSION['access_token']; 

$user = json_decode(file_get_contents($graph_url)); 
echo("Hello " . $user->name); 
    } 
    else { 
    echo("The state does not match. You may be a victim of CSRF."); 
    } 
    } 

내가 문자에 코드를 따라 한 이유는 사용자 변수에 액세스 할 수 없습니다 사전에 감사드립니다. 내가 준 URL을 방문해 볼 수 있습니다. 단지 비어 있습니다.

+0

PHP 오류가 있습니까? 코드가 실행을 멈추게하는 PHP 오류가 발생하는 것처럼 보입니다. –

답변

0

인증 된 경우 사용중인 access_token을 테스트 했습니까? 당신은 디버깅 툴이를 사용할 수 있습니다 https://developers.facebook.com/tools/

또한이 링크를 시도 할 수 있습니다. https://github.com/facebook/facebook-php-sdk가 PHP의 SDK는 여기에서 로그인 한 사용자의 기본 정보를 얻을 수있는 클래스를 사용 예제 폴더를 확인합니다.

+0

그래, 그 aunthenticated, 난 그냥 지금은 아무것도이 예제를 사용하여 인쇄됩니다, 난 심지어 에코 ("안녕하세요". $ user-> 이름); 하지만, 그 모든 PHP에서 html을 추가 할 때, 반향을 일으키지 않습니다. 인쇄가됩니다. 위의 코드 블록 밖에서 PHP를 추가하면 인쇄됩니다. –

+0

좋아, 내가 틀렸어도, 내가 원할 때마다 php가 인쇄되지 않고, html로되어있다. –

+0

시도해보십시오 var_dump ($ user); $ user의 모든 값을 반환 할 것입니다. – Rei