2012-11-06 17 views
0

這是我如何獲取用戶存取權限令牌獲取Facebook的ACCES令牌不重定向

$code = $_REQUEST["code"]; 
//auth user 
if(empty($code)) { 
    $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=myclientid&redirect_uri=' . urlencode('http://myweb.com/facebook.php') ; 
    echo("<script>top.location.href='" . $dialog_url . "'</script>"); 
    } 
    //get user access_token 
    $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=myclientid&redirect_uri=' . urlencode('http://myweb.com/facebook.php') 
    . '&client_secret=mybigsecret&code=' . $code; 
    $access_token = file_get_contents($token_url); 

但我不知道是否有什麼辦法可以做到這一點沒有任何重定向?

回答

0

這裏是我的代碼,你可以試試...

$code = $_REQUEST["code"]; 
$response = file_get_contents(
    "https://graph.facebook.com/oauth/access_token?" . 
    "client_id=" . $client_id . 
    "&redirect_uri=" . $redirect_url . 
    "&client_secret=" . $client_secret . 
    "&code=" . $code 
); 
parse_str($response, $params); 
$graph_url = "https://graph.facebook.com/me?access_token=" . $params['access_token']; 
$user_data = json_decode(file_get_contents($graph_url)); 
$user = $user_data->id; //get active fb user id 
$facebook->setAccessToken($params['access_token']); 

附: $params['access_token'] for access_token value ...

+0

問題是,在我的代碼中,重定向是獲取$ code,並且這個星星已經帶有$ code .. –

0

我認爲沒有常見瀏覽器的解決方案,因爲Facebook在oauth頁面中設置標頭X-Frame-Options:DENY,該頁面在這種情況下拒絕使用iframe。