1

我想不出办法只用个人资料照片来交朋友。我可以使用多查询来检查每个朋友是否有照片,但这会导致流量很大。

有没有其他选择?

4

2 回答 2

1

这可以通过简单的 FQL 来实现。

SELECT uid, name, pic_small FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND pic_small != 'https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/yP/r/FdhqUFlRalU.jpg'

seb-query 会得到你所有的朋友uids。另一个查询将匹配 uids 与配置文件数据检查是否pic_small指的是 Facebook 用作占位符的内容。

您可以在这里快速测试它。

于 2012-11-19T10:00:15.500 回答
1

尽管 Gajus 建议的查询现在可能有效,但一旦 Facebook 更改其 CDN 上默认图片的 URL,它就会中断。(可能发生,可能不会发生。)

所以我建议这个改进:

profile_pic表有一个名为 的字段is_silhouette,它是一个布尔值,用于指示用户是否有自己的个人资料图片集。

因此,要仅获取具有个人资料图片集的朋友,您可以使用

SELECT uid, name FROM user WHERE uid IN
  (SELECT id FROM profile_pic WHERE
    id IN (SELECT uid1 FROM friend WHERE uid2 = me() )
    AND NOT is_silhouette
  )

–>在 Graph API Explorer 中尝试此查询。

于 2012-11-19T14:12:14.913 回答