Facebook的 Profiles 图片非朋友

我正在创建一个iPhone电子邮件客户端,在收件箱的 UITableViewCell 中显示发件人的 Profiles 图片,就像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

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

然而,麻雀能够从Facebook获取 Profiles 图片供我不是朋友的用户使用 . 这怎么可能?我虽然查询仅限于特定群体,例如您的朋友 . 搜索电子邮件地址无效?它是否正确? Sparrow如何 grab 这些 Profiles 图片?

回答(2)

2 years ago

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

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

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

2 years ago

好吧,只要你知道用户Facebook ID - 这是一个很长的数字,但把它当作一个字符串 . 您可以使用此网址获取他们的 Profiles 照片:

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

不需要任何更复杂的东西 .