0

У меня есть токен из 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
+0

Вы используете токен, который вы взяли из Graph Explorer в своем приложении? –

+0

есть. я даже отозвал разрешения и повторно утвердил их – kapitanluffy

+0

, вы не можете использовать тот же токен из Graph Explorer, поскольку он привязан к этому конкретному приложению. Вам нужно будет создать access_token из самого приложения. –

ответ

0

Вам необходимо обновить версия SDK до последней стабильной версии 4.0.12. С 4.0.3 было много bug fixes and security updates. Одна из таких ошибок связана с проверкой информации о сеансе, с которой вы столкнулись. Это, надеюсь, исправить вашу проблему. :)

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

  • Нет связанных вопросов^_^