У меня есть токен из Facebook (из инструмента графического обозревателя). Я использую PHP SDK. Я создал сессию с использованием указанного токена и вызвал метод FacebookSession :: validate (). Он вернул ИСТИНУ. Я загрузил его на тестовом сервере, и когда я запускаю его, он говорит, что сессия истекла. Я отладил токен, и срок его действия должен длиться 2 месяца.
Когда я пытаюсь получить информацию о пользователе (на тестовом сервере), это также работает. Даже информация о сеансе. Он только генерирует исключение «сеанс истек», когда я вызываю метод validate (). Есть идеи, что я делаю не так? Обратите внимание, что это произошло только после того, как я загрузил его на живой сервер. Код на моем локальном сервере и в прямом эфире одинаковы.
Вот пример кода. Appid и secret уже устанавливаются путем вызова метода setDefaultApplication ().
<?php
\Facebook\FacebookSession::setDefaultApplication('app-id','app-secret');
$s = new \Facebook\FacebookSession('my-access-token');
$u = null;
try {
$fbr = new \Facebook\FacebookRequest($s, 'GET', '/1663246619?fields=id,first_name,last_name,gender,email,birthday,bio');
$u = $fbr->execute();
$i = $s->getSessionInfo();
var_dump($i->getProperty('is_valid'));
var_dump($s->validate());
} catch(\Exception $e) {
var_dump($e->getMessage());
}
var_dump($u->getGraphObject()->asArray());
Вот ответ
bool(true)
string(50) "Session has expired, or is not valid for this app."
array(11) {
["id"]=>
string(10) "1663246619"["email"]=>
string(22) "[email protected]"["first_name"]=>
string(12) "Kapitanluffy"["gender"]=>
string(6) "female"["last_name"]=>
string(6) "Pirata"["link"]=>
string(34) "http://www.facebook.com/1663246619"["locale"]=>
string(5) "en_US"["name"]=>
string(19) "Kapitanluffy Pirata"["timezone"]=>
int(8)
["updated_time"]=>
string(24) "2014-12-06T23:47:48+0000"["verified"]=>
bool(true)
}
другие заметки:
Вам необходимо обновить версию SDK до последней стабильной версии. 4.0.12
, Там было много исправления ошибок и обновления безопасности поскольку 4.0.3
, Одна из таких ошибок связана с проверкой информации о сеансе, с которой у вас возникли проблемы. Надеюсь, это должно исправить вашу проблему. 🙂
Других решений пока нет …