2014-05-15 1 views
0

Я работаю над API-интерфейсом iPhone, написанным с Phalcon Framwework и Facebook PHPSDK v2. Вся аутентификация выполняется на клиенте, и как только маркер доступа fb проверяется сервером, между клиентом и сервером создается отдельный HMAC-аутентификация. Моя конечная цель - вернуть список друзей ids, names и profile pic urls, которые разрешили приложение, учитывая новый пользовательский токен fbid или acccess. Я использовал эту библиотеку для включения SDK в приложение Phalcon. https://github.com/geass/Phalcon-Facebook-LibraryFB PHP SDK Получите друзей, которые разрешили приложение от fbid или accesstoken

Я уже просматривал SO для anwer и пробовал несколько запросов графа, но они, похоже, не работают.

Я использовал следующие FQL нашли легко на SO в графике API исследователя:

SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = 123456) AND is_app_user = 1 

, который, кажется, работает, если маркер доступа действителен.

, когда я пытаюсь использовать один и тот же FQL в СКД им не уверен, как я могу применить маркер доступа, просто делает:

function getFriendsUsingApp($fbId){ 

     $params = array(
     'method' => 'fql.query', 
     //'query' => "select pic_square from user where uid=$fbId", 
     'query' => "SELECT uid, name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = $fbId) AND is_app_user = 1", 
     ); 

     $result = $this->_facebook->api($params); 

     return($result); 

     } 

Этот результат в следующей ошибки:

Фатальная ошибка: Uncaught исключения: 102: Требуется сеанс пользователя брошенного в D: \ Library \ социального \ SDK \ base_facebook.php на линии

Как получить эту информацию, предоставленную либо идентификатором fb, либо токеном доступа, либо и тем?

Спасибо.

+0

Вы уверены, что ваш токен доступа создан и действителен? Получите его и отлаживайте его в https://developers.facebook.com/tools/debug/ –

+0

да, я взял токен от тестируемых пользователей приложения, когда я пытаюсь использовать FQL в отладчике, я получаю хороший результат – dijkstra8x

+0

не забывайте, что сеансы истекают. Вы использовали этот токен доступа сразу после использования в Facebook Debug? –

ответ

0

Решение, которое я нашел, заключалось в том, чтобы потратить время на то, чтобы FBSDK корректно работал в Phalcon, а затем использовал запрос графика (который аккуратно обрабатывает множество проблем, с которыми я сталкивался с использованием HTTPS в файле_get_contents()). Затем Somenone указал на то, что в документах FB API я говорю, что вы можете просто добавить маркер доступа в конце запроса графа GET.

В моей библиотеке файл facebook:

function getFriendsUsingAppIds($fbId, $accessToken){   
     return $this->_facebook->api("$fbId/friends?fields=installed&access_token==$accessToken"); 

    } 

Это дало

[0] => Array 
       (
        [id] => 305232 
       ) 

      [1] => Array 
       (
        [id] => 305391 
       ) 
      [633] => Array 
       (
        [installed] => 1 
        [id] => 100005007310527 
       ) 

я полностью пропустил ряд 633 в первом и предполагалось, я просто получаю список всех друзей.

Затем я удалил строки, которые не установили набор с простым foreach.

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

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