如果您已经拥有有效的身份验证令牌,如何绕过facebook PHP登录方法
我在codeigniter项目中使用此库访问Facebook graph API:如果您已经拥有有效的身份验证令牌,如何绕过facebook PHP登录方法,php,codeigniter,facebook-graph-api,facebook-php-sdk,access-token,Php,Codeigniter,Facebook Graph Api,Facebook Php Sdk,Access Token,我在codeigniter项目中使用此库访问Facebook graph API: 我的web应用程序使用Facebook JS SDK在客户端对用户进行身份验证,然后在登录完成后,立即通过AJAX请求将用户的用户id和会话对象发送到我的服务器。我想从服务器调用graph API来接收用户的基本信息,因此我想知道是否有一种方法可以绕过调用facebook->login()方法来通过facebook重定向接收会话的需要?有人知道怎么做吗?我根本不推荐Facebook SDK。如果你自己做事情,你
我的web应用程序使用Facebook JS SDK在客户端对用户进行身份验证,然后在登录完成后,立即通过AJAX请求将用户的用户id和会话对象发送到我的服务器。我想从服务器调用graph API来接收用户的基本信息,因此我想知道是否有一种方法可以绕过调用facebook->login()方法来通过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;
}
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);
}
然后是Facebook api函数,如:
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;
}
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);
}
然后,您可以向graph api发出如下请求:
fb_-api('me',$access_-token)代码>如果,因为某种原因,你没有安装curl,你总是可以使用我的代理库:嗯,我得说我真的很喜欢这个建议。这似乎比使用繁重的facebook sdk来快速请求数据要容易得多。谢谢@PaulPRO@凯西·弗林:不客气:)自从sdk升级到graph api后,我就没用过它。我发现它有点臃肿,因为它没有被Facebook开发者文档覆盖,所以使用起来有点困难。