FQL: общение с друзьями делает возможным меньше запросов - PullRequest
0 голосов
/ 08 января 2011

Я создаю социальное приложение, которое получает данные из Facebook и отображает их причудливым образом. Сначала приложение выбирает 10 случайных друзей, а затем (пытается) найти общих друзей между вошедшим в систему пользователем и каждым из 10 друзей. .

Получить 10 друзей было невероятно легко с помощью FQL, но у меня есть серьезные проблемы с поиском общих друзей без приложения, которое делает 2000 вызовов API!

Так работает

function GetMutualFriendsFor($id)
    {
        // Queries and returns results for mutual friends between user and id
        $param  =   array(
                            'method'  => 'friends.getMutualFriends',
                            'source_uid'    => $this->_user['id'],
                            'target_uid'  => $id,
                            'callback'=> ''
                        );
        $mutualFriends = $this->_instance->api($param);

    }

К сожалению, запуск этой функции один раз занимает около 3 минут ... умножьте это на 10 раз, и вы начнете готовить обед после запуска сценария!

Я думал о том, чтобы сделать это с использованием FQL, поскольку это быстрее и возвращает именно тот объем данных, который я хочу (uid, name), который я пробовал

    $query = 'SELECT uid1 FROM friend WHERE uid2=me() AND uid1 IN (SELECT uid2 FROM friend WHERE uid1=' . $id .') LIMIT 5';

Но PHP выдает ошибку: Не удается найти всех друзей 1523223065. Может искать только зарегистрированного пользователя (665044728) или друзей зарегистрированного пользователя с соответствующим разрешением

Кто-нибудь знает, что делать ?? PS: я уже видел все другие посты на stackoverflow об этом, к сожалению, безуспешно: (

Большое спасибо !!

Ответы [ 2 ]

1 голос
/ 11 января 2011

Насколько я знаю, вы не можете делать это через FQL.Ваш запрос в порядке, и он работал некоторое время назад.Но я думаю, что Facebook изменил вещи ...

-Roozbeh

0 голосов
/ 12 января 2011

Да! Я понял, что это единственный способ сделать это, в любом случае. 2 минуты по сравнению с 5 секундами!

В любом случае, спасибо !!

Dan

...