FQL:按赞排序照片

发布于 2024-09-11 08:22:42 字数 32 浏览 3 评论 0原文

有没有办法在 FQL 中检索按喜欢数量排序的照片?

Is there anyway to retrieve photos ordered by the number of likes in FQL?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2024-09-18 08:22:42

请注意:我以前从未使用过 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);

这很可能会按照从最喜欢到最不喜欢的顺序返回答案。至少,它对我有用! :)

PLEASE NOTE: I have never played with FQL before, but I need this exact solution yesterday, so I gave it a go!

Try adding references to "like_info" in the first line in the previous answer (maybe like_info is new since you asked this?):

$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);

This may well give you answers returned in order from most to least liked. At least, it worked for me! :)

2024-09-18 08:22:42

请注意:不再需要此解决方案,因为 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');

Please note: This solution is no longer require as like_info has been added to photo


So, I'm guessing this is impossible to do nicely? Here's the ugly solution:

$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');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文