我已经浏览过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检索他们的个人资料图片图片Uri的工作原理:
https://graph.facebook.com/<FACEBOOK_ID>/picture?type=square
例如(作品):
<img src="https://graph.facebook.com/568916752/picture?type=square" />
使用用户的Facebook用户名检索他们的个人资料图片图片Uri有效:
https://graph.facebook.com/<FACEBOOK_USERNAME>/picture?type=square
例如(作品):
<img src="https://graph.facebook.com/brett.scott/picture?type=square" />
最佳做法建议我将用户的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
答案 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