Использование API-интерфейса входа в систему для получения пользовательских данных и его работы нормально, но во время разработки, если я получаю токен доступа много раз, я не могу получить токен доступа, и через некоторое время он снова работает! Почему это происходит? Даже когда я получаю токен доступа, я сохраняю токен в сеансе, и после еще одного сеанса попытки есть, но не могу получить информацию о пользователе? Может ли токен доступа истекает или что происходит?
функция. php
<?php
class PinterestApi
{
public function GetAccessToken($client_id, $redirect_uri, $client_secret, $code) {
$url = 'https://api.pinterest.com/v1/oauth/token';
$curlPost = 'client_id='. $client_id . '&redirect_uri=' . $redirect_uri . '&client_secret=' . $client_secret . '&code='. $code . '&grant_type=authorization_code';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http_code != '200')
throw new Exception('Error : Failed to receieve access token');
return $data['access_token'];
}
public function GetUserProfileInfo($access_token) {
$url = 'https://api.pinterest.com/v1/me/?access_token=' . $access_token . '&fields=id,username,first_name,last_name,image';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http_code != 200)
throw new Exception('Error : Failed to get user information');
return $data['data'];
} } ?>
Не удалось получить токен доступа эта ошибка приходит
обратный вызов. php
<?php
session_start();
require_once('define.php');
require_once('function.php');
if(isset($_GET['code'])) {
try {
$pinterest_ob = new PinterestApi();
$access_token = $pinterest_ob->GetAccessToken(PINTEREST_APPLICATION_ID, PINTEREST_REDIRECT_URI, PINTEREST_APPLICATION_SECRET, $_GET['code']);
if(isset($access_token)){
$_SESSION['access_token'] = $access_token;
header("location:mainpage.php");
}
}
catch(Exception $e) {
echo $e->getMessage();
exit;
}
}
?>