Я пытался использовать easy curl, чтобы получить Facebook code
и access_token
через curl. Так что я могу отправить сообщение на мою стену. Я знаю sdk
, но если я только использую легкий curl
способ?
возврат некоторой ошибки:
Method Not Implemented
Invalid method in request
Вот мой код. ПО ПУТИ: Как запомнить access_token
, если он все еще действует в течение 1 часа? Спасибо.
$code_url = "https://graph.facebook.com/oauth/authorize?client_id=".$app_id."&redirect_uri=".urlencode($canvas_page_url)."&type=client_cred&display=page&scope=user_photos,publish_stream,read_stream,user_likes";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$code_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1);
$fb_code = curl_exec($ch); // get code
curl_close($ch);
$token_url = "https://graph.facebook.com/oauth/access_token?client_id=".$app_id."&client_secret=".$app_secret."&redirect_uri=".urlencode($canvas_page_url)."&code=".$fb_code."";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$token_url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($curl, CURLOPT_HEADER ,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER ,1);
$result = curl_exec($curl);
curl_close($curl);
echo $result; //get token for post to wall
EDIT:
$app_id = "14XXXXXXXX";
$app_secret = "77XXXXXXXXXXXXXXXXXXXXXXX";
function get_app_access_token($app_id, $secret) {
$url = 'https://graph.facebook.com/oauth/access_token';
$token_params = array(
"type" => "client_cred",
"client_id" => $app_id,
"client_secret" => $app_secret
);
return str_replace('access_token=', '', post_url($url, $token_params));
}
$token = get_app_access_token($app_id,$app_secret);
echo $token;