Я пытаюсь встроить часть в свой личный веб-сайт, который показывает места, которые я отметил в своих сообщениях на Facebook. Насколько я понимаю, мне нужно сделать oAuth-запрос на сервере, чтобы получить AccessToken:
Я создал php-файл, который получает файл с токеном и обновляет его. Я могу вызывать этот файл с заданием cron каждый час и иметь неограниченный токен. Это выглядит так:
$appID = "APPID";
$appSecret = "APPSECRET";
$currentToken = file_get_contents(__DIR__."/token.txt");
$url = "https://graph.facebook.com/oauth/access_token?client_id=".$appID."&client_secret=".$appSecret."&grant_type=fb_exchange_token&fb_exchange_token=".$currentToken;
$ci = curl_init();
curl_setopt($ci, CURLOPT_URL, $url);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ci, CURLOPT_TIMEOUT, 10);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_FOLLOWLOCATION, TRUE);
$newtoken = curl_exec($ci);
curl_close ($ci);
$newtoken = str_replace("access_token=","",$newtoken);
$newtoken = substr($newtoken, 0,strpos($newtoken, "&expires=",0));
if($newtoken == "")
{
echo "error";
}
else
{
$file = __DIR__."/token.txt";
file_put_contents($file, $newtoken);
echo $newtoken;
}
Если токен доступа имеет форму {app_id}|{app_secret}
вы используете не токен доступа пользователя, а токен доступа к приложению.
Похоже, вы не реализуете правильный процесс входа в систему для сбора токена доступа пользователя. Придерживайтесь предоставленного примера кода FB PHP SDK.
Увидеть
Других решений пока нет …