【问题标题】:Facebook Profile Pictures for non-Friends非好友的 Facebook 个人资料图片
【发布时间】:2012-08-18 10:26:11
【问题描述】:

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

【问题讨论】:

    标签: facebook-graph-api facebook-fql


    【解决方案1】:

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

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

    不需要更复杂的东西。

    【讨论】:

    • 如果我能以某种方式获取发件人的 Facebook ID,那就太好了,但我只需要处理电子邮件标题。所以我必须使用类似的查询来查找发件人的 ID,但我会面临同样的问题。有什么想法吗?
    【解决方案2】:

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

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

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

    【讨论】:

    • 这太棒了!但是当我将它插入浏览器时,我会返回一个用户作为第一个(或唯一结果)的 facebook 页面,而不是一个 JSON 对象......我是不是以错误的方式接近这个?例如:facebook.com/search/results.php?type=user&q=adams%20smith 返回包含搜索结果的完整页面,而不是 JSON 对象。
    • 您需要通过 https://graph.facebook.com/search?type=user&q=USER@EMAIL.NET&access_token=... 或您在原始帖子中用于进行 FQL 调用的任何 SDK 进行 API 调用。此端点需要访问令牌。
    • 是的,这是有道理的。谢谢牵手哈哈!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2012-06-08
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2013-07-02
    • 2014-06-03
    相关资源
    最近更新 更多