Ошибка FQL 102 Требуется сеанс пользователя при повторном запросе

У меня полнофункциональный FQL-запрос, но когда он запускается во второй раз, я получаю код ошибки 102: требуется сеанс пользователя

В моем приложении у меня есть автозаполнение поиска друзей. Я использую автозаполнение JQuery UI с динамическим источником с использованием AJAX.

Это моя функция PHP:

function fb_buscarAmigosAutocomplete($term='',$app_user=false){
$facebook = new Facebook(array(
    'appId' => APP_ID,
    'secret'=> APP_SECRET 
));

$term=trim(strtolower($term));

//Buscar usuarios
try{
    $fql     =  "   SELECT uid,name,first_name,last_name,pic_square
                    FROM user
                    WHERE uid IN (
                        SELECT uid2
                        FROM friend
                        WHERE uid1=me()
                    )
                    AND strpos(lower(name),'".$term."') >=0
                ";
    if($app_user)
        $fql .= "   AND is_app_user";           

        $fql .= "   LIMIT 5";

        $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );
        $result   =   $facebook->api($param);


} catch(FacebookApiException $e){
    $error=$e->getMessage();
    var_dump($e);
}

if(!empty($result)) {
     $return['amigos']=$result;
     $return['valido']=true;
}else 
    $return['valido']=false;

return $return;
}

Странно то, что последние 2-3 недели все работало нормально, и вдруг это прекратилось. Даже «страннее», он все еще работает при первом срабатывании, но не во второй раз. Так как это асинхронно, я не понимаю, какая разница, если это первый, второй, третий, четвертый раз, когда он срабатывает ..

Есть идеи?

Редактировать 1 С дальнейшими исследованиями я думаю, что я нашел обходной путь. Это может быть потому, что сообщается об ошибкеВот ответилаВот

Мой обходной путь состоял в том, чтобы поймать первый access_token, который я получаю с Object Facebook, а затем прикрепить его к каждому экземпляру класса, что-то вроде этого

Первое соединение:

$facebook = new Facebook(array(
    'appId' => APP_ID,
    'secret'=> APP_SECRET 
));

$uid = $facebook->getUser();
if($uid){
  $_SESSION['access_token']=$facebook->getAccessToken();
} 

Любое другое использование API:

$facebook = new Facebook(array(
    'appId' => APP_ID,
    'secret'=> APP_SECRET 
));
$facebook->setAccessToken($_SESSION['access_token']);
try{
    $user_info  = $facebook->api('/'.$uid.'?fields=id,name,first_name,last_name,email,picture');

} catch(FacebookApiException $e){
    $error = $e->getMessage();
}    

Пока это решило проблему

Редактировать 2
это не так ... иногда мой токен доступа является допустимой буквенно-цифровой строкой +100 символов, и в те времена он работал.

Иногда это строка только из 48 чисел, и это не ... я действительно застрял здесь

Ответы на вопрос(1)

Ваш ответ на вопрос