使用third_party_id生成Facebook用户图片

时间:2012-09-17 20:10:33

标签: facebook facebook-graph-api

我已经浏览过Facebook的在线文档,无法找到使用用户的第三方ID(third_party_id)字段手动构建Facebook用户的个人资料图片的方法。

例如(不起作用):

https://graph.facebook.com/<FACEBOOK_THIRD_PARTY_ID>/picture?type=square


  

http://developers.facebook.com/docs/reference/api/user/

     

third_party_id:用户的匿名但唯一的标识符;仅在通过字段URL参数

特别请求时才返回


使用Facebook ID:

使用用户的Facebook ID检索他们的个人资料图片图片Uri的工作原理: https://graph.facebook.com/<FACEBOOK_ID>/picture?type=square

例如(作品):

<img src="https://graph.facebook.com/568916752/picture?type=square" />


使用Facebook用户名:

使用用户的Facebook用户名检索他们的个人资料图片图片Uri有效: https://graph.facebook.com/<FACEBOOK_USERNAME>/picture?type=square

例如(作品):

<img src="https://graph.facebook.com/brett.scott/picture?type=square" />


Facebook第三方ID:

最佳做法建议我将用户的third_party_id而不是用户的Facebook ID(id)存储在我的数据库中。我不应该将用户的Facebook ID公布给我网站的其他用户。原因?因为一旦用户可以看到另一个用户的个人资料图片Uri,其中包含他们的Facebook ID,他们就可以找到其他人的个人资料(参见下面的示例)。我也确定还有其他原因。

加载个人资料图片:

https://graph.facebook.com/brett.scott/picture?type=square - 或 -

https://graph.facebook.com/568916752/picture?type=square


然后任何用户都可以加载上述用户的个人资料:

http://www.facebook.com/brett.scott - 或 -

http://www.facebook.com/568916752


我不想使用Facebook图表来获取每个用户的个人资料图片Uri picture,因为它太慢了。如果页面上有20张Facebook图片,则会有20条HTTP请求返回到Facebook的服务器。我的目标是零。

是否有另一种方法可以使用third_party_id获取Facebook用户的个人资料图片,还是缺少某个功能?

https://graph.facebook.com/<FACEBOOK_THIRD_PARTY_ID>/picture?type=square

例如(为我的应用程序生成third_party_id):

https://graph.facebook.com/0u0JrPIriHa3fgEDostj7v8dbdo/picture?type=square

1 个答案:

答案 0 :(得分:1)

第三方ID是唯一但匿名的标识符。它旨在允许广告商跟踪唯一用户。它专门设计为 NOT 可解析为Facebook ID。

对于您的网站,您可以在不违反服务条款的情况下将Facebook用户ID存储在您的数据库中,只要您将该数据保密。

当您从Graph API请求照片时,Facebook会向照片返回CDN URL。您可以发布该URL。您不应该将此数据存储的时间超过缓存中预期的时间。

要在一个电话中获得20张照片,您可以呼叫端点:

https://graph.facebook.com/picture?type=square&ids=UID_1,USERNAME_2,...UID_n