FQL: сортировка фотографий по лайкам - PullRequest
1 голос
/ 28 июля 2010

Есть ли способ получить фотографии, упорядоченные по количеству лайков в FQL?

Ответы [ 2 ]

2 голосов
/ 29 января 2013

ОБРАТИТЕ ВНИМАНИЕ: я никогда раньше не играл с FQL, но мне нужно точное решение вчера , поэтому я попробовал!

Попробуйте добавить ссылки на "like_info" в первой строке предыдущего ответа (возможно, like_info является новым, поскольку вы задали этот вопрос?):

$fql = "SELECT like_info, object_id,src_small,link FROM photo WHERE aid = '2389563453799923709' ORDER BY like_info created DESC";
        $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );

        $photos = $facebook->api($param);

Это вполне может дать вам ответы, возвращенные в порядке от наиболее до наименее понравившихся. По крайней мере, у меня это сработало! :)

1 голос
/ 16 августа 2010

Обратите внимание: Это решение больше не требуется, поскольку like_info было добавлено к фотографии


Итак, я полагаю, это невозможно сделать красиво?Вот уродливое решение:

$fql = "SELECT object_id,src_small,link FROM photo WHERE aid = '2389563453799923709' ORDER BY created DESC";
        $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );

        $photos = $facebook->api($param);

        if (count($photos) > 0) { 
            for ($i = 0; $i < count($photos); $i++) {
                $objectId = $photos[$i]['object_id'];
                $like_count = $facebook->api('/'.$objectId.'/likes');
                $photos[$i]['likes'] = count($like_count['data']);
            }
        }

        function cmp($a, $b) {
            if ($a['likes'] == $b['likes'])
                return 0;
            return $a['likes'] > $b['likes'] ? -1 : 1;
        }

        usort($photos, 'cmp');
...