2011-07-29 3 views
0

제목에 나는 이상한 문제가 있다고합니다. 색인 페이지에서 다른 링크를 클릭하면 다시 색인으로 리디렉션됩니다. 두 페이지 모두에 동일한 권한 코드를 작성하고 있습니다.Facebook 권한이 다른 페이지를 클릭 할 때 인덱스 리디렉션

<?php 


$code = $_REQUEST["code"]; 

if(empty($code)) { 
    $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "&scope=email,publish_stream,offline_access"; 

    echo("<script> top.location.href='" . $dialog_url . "'</script>"); 
} 

$token_url = "https://graph.facebook.com/oauth/access_token?client_id=" 
    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret=" 
    . $app_secret . "&code=" . $code . "&scope=email,publish_stream,offline_access"; 

$access_token = file_get_contents($token_url); 

$graph_url = "https://graph.facebook.com/me?" . $access_token; 

$user = json_decode(file_get_contents($graph_url)); 

?> 

이 코드를 쓰고 있어요 내 인덱스에 연결 한 모든 페이지 :

여기 내 코드입니다.

내 코드가 잘못되었거나 서버에 문제가 있습니까?

답변

0

색인 페이지의 링크에있는 URL에 code 변수가 포함되어 있습니까? URL의 쿼리 문자열 부분에 명시 적으로 선언되지 않은 경우 Oauth 대화 상자가 트리거되고 앱이 이미 설치되어있는 경우 사용자는 $my_url으로 리디렉션됩니다.

코드에서 판단하면 기존 Facebook PHP SDK을 사용하면 도움이됩니다. 위에 나열된 동작을 포함하는 현재 (v3.0.0) SDK를 사용하는 코드 스 니펫은 다음과 같습니다.

require 'facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YOUR_APP_ID', 
    'secret' => 'YOUR_APP_SECRET', 
)); 

$fb_user_id = $facebook->getUser(); 

if ($fb_user_id) { 
    try { 
    $user = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    $fb_user_id = null; 

    $params = array(
     'redirect_uri' => $my_url, 
     'scope' => 'email,publish_stream,offline_access'); 

    $dialog_url = $facebook->getLoginUrl($params); 

    echo("<script> top.location.href='" . $dialog_url . "'</script>"); 
    } 
} 
관련 문제