Intereting Posts
Валидация laravel уникальна на двух столбцах Ключевые слова PoEdit – множественное число MySql полнотекстовый поиск в PHP с использованием ключевых слов со строкой Расширение openssl требуется для защиты SSL / TLS Шрифт Bootstrap glyphicons font не найден при использовании assetic в prod на Symfony2 сообщение как страница на стене facebook загрузить изображение $ _FILES не задано есть причина, по которой Magento не должен поддерживать удаление / понижение для модулей Как написать html-код внутри <? Php?> Использование красноречивых полиморфных отношений для категоризации данных в Laravel нажатие на ссылку должно отображать результат на той же странице. Кнопка BACK и REFRESH должна работать нормально Использование Ajax для заполнения окна выбора Возврат двух отдельных результатов запроса в рамках функции модели как загрузить файл на основе blob из базы данных MySQL в PHP? Подготовленный оператор работает для INSERT, но не для SELECT

PHP PHP SDK Ошибка проверки маркера доступа

начиная с учебного пособия thinkdiff.net. Я создал простую тестовую страницу (локальная env) с линией входа / выхода в facebook. Если я вхожу в систему, я хочу, чтобы вывести fb API-интерфейс пользователя.

Я использую последнюю версию PHP SDK на facebook (v.2.1.2) .

Кажется, что работает, но когда я вышел из системы, я получаю это исключение:

FacebookApiException Object ( [result:protected] => Array ( [error] => Array ( [type] => OAuthException [message] => Error validating access token: The session is invalid because the user logged out or because auth.expireSession was invoked. ) ) [message:protected] => Error validating access token: The session is invalid because the user logged out or because auth.expireSession was invoked. [string:Exception:private] => [code:protected] => 0 [file:protected] => C:\wamp\www\fb\facebook.php [line:protected] => 543 [trace:Exception:private] => Array ( [0] => Array ( [function] => _graph [class] => Facebook [type] => -> [args] => Array ( [0] => /me ) ) [1] => Array ( [file] => C:\wamp\www\fb\facebook.php [line] => 492 [function] => call_user_func_array [args] => Array ( [0] => Array ( [0] => Facebook Object ( [appId:protected] => 1819654718***** [apiSecret:protected] => a2fccb8e93638b50c8d6b2********** [session:protected] => [signedRequest:protected] => [sessionLoaded:protected] => 1 [cookieSupport:protected] => 1 [baseDomain:protected] => [fileUploadSupport:protected] => ) [1] => _graph ) [1] => Array ( [0] => /me ) ) ) [2] => Array ( [file] => C:\wamp\www\fb\fb.php [line] => 33 [function] => api [class] => Facebook [type] => -> [args] => Array ( [0] => /me ) ) ) [previous:Exception:private] => ) 

это мой код тестовой страницы

 $fbconfig['appid'] = "18196**********"; $fbconfig['api'] = "5c6910be575e4e688ac6d**********"; $fbconfig['secret'] = "a2fccb8e93638b50c8d6b2**********"; try { include_once "facebook.php"; } catch(Exception $o) { echo '<pre>'; print_r($o); echo '</pre>'; } // Create our Application instance. $facebook = new Facebook(array('appId' => $fbconfig['appid'],'secret' => $fbconfig['secret'],'cookie' => true)); $session = $facebook->getSession(); $fbme = null; // Session based graph API call. if (!empty($session)) { d($session); try { $uid = $facebook->getUser(); $fbme = $facebook->api('/me'); } catch (FacebookApiException $e) { d($e); } } function d($d) { echo '<pre>'; print_r($d); echo '</pre>'; } if ($fbme) { $logoutUrl = $facebook->getLogoutUrl(); echo"<a href='{$logoutUrl}'>logout</a>"; d($fbme); } else { $loginUrl = $facebook->getLoginUrl(array('req_perms' => 'email,read_stream,user_birthday')); echo"<a href='{$loginUrl}'>login</a>"; } 

благодаря

Лука

Я попробую вручную очистить сеанс при выходе из системы. Поместите параметр GET в возвращаемый URL-адрес или используйте другой URL-адрес возврата, а затем выполните следующее:

 $facebook->destroySession(); 

Проблема в том, что cookie сеанса сохраняется даже после выхода пользователя из системы. Когда пользователь возвращается на вашу страницу, вы пытаетесь использовать этот истекший сеанс для выполнения запросов. Удачи.

Хороший ответ, вы должны сначала вызвать destroySession ()

 facebook->destroySession(); 

то вы можете вызвать getLoginUrl ()