2012-02-16 1 views
0

Я пытаюсь создать приложение Instagram с помощью библиотеки PHP, которая здесь (его не очень длинный файл, не волнуйтесь):Почему PHP не сохраняет сеансы при использовании PHP-кода instagram?

http://pastie.org/3391787

Я пытаюсь разрешить пользователю с помощью 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); 

этот код работает нормально в первый раз, но когда вы обновляете страницу, информация не является r etrieved, и это может означать только одно, что сессия или куки не установлен должным образом, и вот почему метод GetUser не запрашивает информацию,

$userinfo = $instagram->getUser($_SESSION['InstagramAccessToken']); 

пожалуйста, вы можете пролить свет на эту проблему, я пытались в течение 4 часов!

ответ

1

На каждый ваш запрос перезаписи текущих данных сеанса с ничего по этой линии:

$_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); 
+0

спасибо за ваш ответ, я пробовал но теперь он говорит, что пользователь не существует, который является сообщением из instagram api! Я полностью согласен с отменой сессии по каждому запросу, хотя !!! :)) – MidnightCoder

+0

«Я попробовал, но теперь он говорит, что пользователь не существует» - и это, очевидно, уже другая проблема. Основная идея, которую я высказал в своем ответе, заключается в том, что вам нужно либо извлечь токен из API, либо из сеанса. – zerkms

Смежные вопросы