Facebook的个人资料图片非朋友

时间:2012-08-17 20:54:30

标签: facebook-graph-api facebook-fql

我正在创建一个iPhone电子邮件客户端,在收件箱的UITableViewCell中显示发件人的个人资料图片,就像Sparrow一样。我正在使用以下FQL查询来获取这些图像:

SELECT 
    pic_big 
FROM 
    user 
WHERE 
    uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 
        AND 
    strpos(lower(name),'INSERT_FIRST_THREE_LETTERS_OF_FIRST_NAME_HERE') >= 0 
        AND 
    strpos(lower(name),'INSERT_LAST_NAME_HERE') >= 0 
ORDER BY name

我从电子邮件标题中获取发件人的姓名,然后使用完整的姓氏和名字的前三个字母搜索用户的Facebook好友以说明昵称。这在整体上非常有效。

然而,Sparrow能够从Facebook获取个人资料图片给我甚至不是朋友的用户。这怎么可能?我虽然查询仅限于特定群体,例如您的朋友。搜索电子邮件地址无效?它是否正确? Sparrow如何抓住这些个人资料图片?

2 个答案:

答案 0 :(得分:3)

只要您知道用户的Facebook ID - 这是一个很长的数字,但将其视为一个字符串。您可以使用此网址获取他们的个人资料照片:

https://graph.facebook.com/[id]/picture

不需要任何更复杂的事情。

答案 1 :(得分:2)

您可以通过以下方式拨打API来获取其电子邮件中任何已知用户的user_id:

 /search?type=user&q=USER@EMAIL.NET

如果他们的电子邮件是在Facebook和公众注册的,那么您将获得一个带有他们的姓名和用户ID的JSON对象。您需要单独调用(或使用批处理请求)从其ID中获取图片。