我正试图通过curl调用回调网址来获取Facebook应用的访问令牌。
在第一个函数中,我试图以这种方式构建登录URL:
if(!session_start()) {
session_start();
}
$fb = new Facebook([
'app_id' => '',
'app_secret' => '',
'default_graph_version' => 'v2.8',
]);
$helper = $fb->getRedirectLoginHelper();
$callback = 'http://www.exemple.com/callback';
$loginUrl = $helper->getLoginUrl($callback);
在回调页面中,我获取访问令牌并强制页面退出以在JSON中显示
if(!session_start()) {
session_start();
}
$fb = new Facebook\Facebook([
'app_id' => '',
'app_secret' => '',
'default_graph_version' => 'v2.8',
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// There was an error communicating with Graph
echo $e->getMessage();
exit;
}
if (isset($accessToken)) {
$data['access_token'] = (string) $accessToken;
$data = json_encode($data);
die($data);
} elseif ($helper->getError()) {
exit;
}
最后,我使用Curl来调用此页面并获得结果。
$ch = curl_init();
$url = //The loggin url.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
return $result;
这不适合我。我想弄清楚出了什么问题。