如果您已经有有效的auth_token,如何绕过Facebook php登录方法
-
25-10-2019 - |
题
我在我的CodeIgniter项目中使用此库进行Facebook Graph API访问:http://www.haughin.com/code/facebook/
我的Web应用程序使用Facebook JS SDK来验证用户客户端,然后在登录完成后立即通过AJAX请求将用户的用户ID和会话对象发送到我的服务器。我想从服务器接听图形API以接收用户的基本信息,因此我想知道是否有一种方法可以绕过需要调用Facebook-> login()方法来通过A接收会话的方法从Facebook重定向?有人知道怎么做吗?
解决方案
我根本不推荐Facebook SDK。如果您自己做事,您将拥有更多的控制权,并且变得更加简单。只需设置一个卷曲功能:
function curl($url, $request = 'GET'){
$ch = curl_init();
$curlopt = array(
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => $request,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => 'facebook-php-2.0',
);
curl_setopt_array($ch, $curlopt);
$response = curl_exec($ch);
if($response === false)
trigger_error(curl_error($ch));
curl_close($ch);
return $response;
}
然后是Facebook API函数,例如:
function fb_api($url, $access_token = false, $request = 'GET'){
$url = 'https://graph.facebook.com/'.$url;
if($access_token)
$url .= (strstr($url, '?') ? '&' : '?').'access_token='.$access_token;
return json_decode(curl($url, $request), true);
}
然后,您可以向图形API提出请求:
fb_api('me', $access_token);
其他提示
如果以某种方式没有安装卷发,则始终可以使用我的代理库: http://codeigniter.com/forums/viewthread/186250/
不隶属于 StackOverflow