У меня есть токен из facebook (из инструмента для анализа графиков). Я использую PHP sdk. Я создал сеанс, используя указанный токен, и вызвал метод FacebookSession :: validate(). Он вернул TRUE. Я загрузил его на тестовый сервер, и когда я запустил его, он сказал, что сеанс истек. Я отлаживал токен, и срок действия должен длиться 2 месяца.Facebook token недействителен, но может получить доступ к api
Когда я пытаюсь получить информацию о пользователе (на тестовом сервере), он также работает. Даже информация о сеансе. Это вызывает только исключение «session is expired», когда я вызываю метод validate(). Любые идеи, что я делаю неправильно? Обратите внимание, что это произошло только после того, как я загрузил его на живой сервер. Код на моем локальном сервере и вживую совпадают.
Вот пример кода. Приложение и секрет уже установлены вызовом метода 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)
}
другие примечания:
- Маркер доступа для моего приложения
- Я использую facebook-PHP-СДК-v4 версии 4.0. 3
Вы используете токен, который вы взяли из Graph Explorer в своем приложении? –
есть. я даже отозвал разрешения и повторно утвердил их – kapitanluffy
, вы не можете использовать тот же токен из Graph Explorer, поскольку он привязан к этому конкретному приложению. Вам нужно будет создать access_token из самого приложения. –