这是我检索用户访问令牌的方法
$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 :(得分:0)
我认为普通浏览器没有解决方案,因为Facebook在oauth页面中设置了标题X-Frame-Options:DENY
,在这种情况下拒绝使用iframe。
答案 1 :(得分: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']);
P.S。 $params['access_token']
用于access_token值...