Почему PHP не сохраняет сеансы при использовании PHP Instagram PHO?
Вопрос
Я пытаюсь создать приложение в Instagram, используя библиотеку PHP, которая здесь (это не очень длинный файл, не волнуйтесь):
Я пытаюсь авторизировать пользователя с помощью OAuth, который работает отлично, и авторизованный (текущий пользователь) может увидеть его информацию (например, изображение, имя и т. Д.), Но когда я обновляю страницу, все идет, и я ' М остался с пустыми данными, вот код -
// Instantiate the API handler object
$instagram = new Instagram($config);
$accessToken = $instagram->getAccessToken();
$_SESSION['InstagramAccessToken'] = $accessToken;
$instagram->setAccessToken($_SESSION['InstagramAccessToken']);
$userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']);
// After getting the response, let's iterate the payload
$ures = json_decode($userinfo, true);
Этот код работает нормально в первый раз, но когда вы обновляете страницу, информация не получается, и это может означать только одно, что сеанс или файл cookie не установлены должным образом, и поэтому метод Getuser не получает информация,
$userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']);
Пожалуйста, не могли бы вы пролить свет на эту проблему, я пытался на 4 часа !!
Решение
По каждому вашему запросу вас перезаписываете данные текущих сеансов, ничего не по этой строке:
$_SESSION['InstagramAccessToken'] = $accessToken;
Скорее всего, так это должно выглядеть:
$instagram = new Instagram($config);
if (!empty($_SESSION['InstagramAccessToken'])) {
$accessToken = $instagram->getAccessToken();
$_SESSION['InstagramAccessToken'] = $accessToken;
} else {
$instagram->setAccessToken($_SESSION['InstagramAccessToken']);
}
$userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']);
// After getting the response, let's iterate the payload
$ures = json_decode($userinfo, true);