0

我正在创建一个 iPhone 电子邮件客户端,它UITableViewCell在收件箱的 s 中显示发件人的个人资料图片,就像 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 是如何获取这些个人资料照片的?

4

2 回答 2

3

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

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

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

于 2012-08-17T21:15:20.707 回答
2

您可以通过 API 调用从他们的电子邮件中获取任何已知用户的 user_id:

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

如果他们的电子邮件在 Facebook 上注册并公开,您将返回一个带有他们的姓名和用户 ID 的 JSON 对象。您需要单独拨打电话(或使用批量请求)从他们的 ID 中获取他们的照片。

于 2012-08-18T02:26:11.197 回答