Facebook 如何只获得上传了个人资料照片的好友,而忽略那些拥有默认轮廓的用户?

Facebook 如何只获得上传了个人资料照片的好友,而忽略那些拥有默认轮廓的用户?,facebook,facebook-graph-api,facebook-fql,social-networking,Facebook,Facebook Graph Api,Facebook Fql,Social Networking,我想不出一种只靠个人资料照片交朋友的方法。我可以使用多重查询来检查每个朋友是否都有照片,但这会导致大量流量 有其他选择吗?这可以通过简单的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/

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


有其他选择吗?

这可以通过简单的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查询将获取您的所有好友
uid
。如果
pic\u small
指的是Facebook使用的个人资料,那么另一个查询将把UID与个人资料数据检查相匹配


您可以快速测试它。

虽然Gajus建议的查询现在可能可以运行,但一旦Facebook更改其CDN上默认图片的URL,它就会中断。(可能发生,也可能不发生。)

因此,我建议进行以下改进:

profile\u pic
表中有一个名为
is\u screept
的字段,该字段是一个布尔值,表示用户是否有自己的配置文件图片集

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

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
  )

–>

你能定义没有照片的朋友是什么吗?你的意思是供测试用户显示的照片吗?这是一个没有照片的朋友,可能所有非照片都只有此图像
https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v2/yL/r/HsTZSDw4avx.gif
。您可以检查图片的url是否为此。此方法的问题是,我仍然需要发出
2x
请求。只是尝试使用此方法,尽管它不是一个选项。与500位朋友核对数据需要10秒钟。