2011-09-25 1 views
0

내가 간단한 사용하여 응용 프로그램 페이스 북 탭 권한을 부여 FB.ui을 사용하고 페이지 탭에 FB.ui 설정하지 :의 OAuth 2.0 쿠키가

FB.init({ 
    appId : '<%= Facebook::APP_ID %>', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true, // parse XFBML 
    channelUrl : 'http://<%= request.host_with_port %>/channel.html', // Custom Channel URL 
    oauth : true //enables OAuth 2.0 
}); 

FB.ui({ 
    method: 'oauth' 
    }, 
    function(response) { 
    // do some redirect stuff here 
}); 

권한 부여가 잘 진행하지만, 사용자가 응용 프로그램을 확인하는 경우에도 관련 fbsr_xxxxx 쿠키가 설정되지 않았습니다. 거기에 강제로 어떤 방법이 있습니까? 응답 객체에는 user_id가 있지만 signed_request와 함께 표준 흐름을 사용합니다.

답변

0

나는 똑같은 문제가 있습니다. 새로운 창을 띄우는 FB.login을 사용하는 것 이외에는 페이지를 새로 고치지 않고도 액세스 토큰을 얻을 수있는 방법이없는 것처럼 보입니다.

FB.ui({ 
    method: 'oauth' 
    }, 
    function(response) { 
    if(response.session){ 
$.get('return_token.php', function(response){ 
var access_token = response; 
alert(access_token); 
}) 
} 
}); 




return_token.php: 

<? 
    $config = array(
    'appId' => $app_id, 
    'secret' => $secret 
); 

    $facebook = new Facebook($config); 

    try {$access_token = $facebook->getAccessToken();}catch(FacebookApiException $e) { 

     $result = $e->getResult(); 
     echo json_encode($result); 

    } 

echo $access_token; 

?> 
: 당신이 할 수 있습니다 무엇

는 FB.ui 응답 후 액세스 토큰을 반환하는 다른 페이지로 아약스 전화를 할 것입니다