2

我查看了 Facebook 的在线文档,但找不到使用用户的第三方 ID ( third_party_id) 字段手动构建 Facebook 用户的个人资料图片 Uri 的方法。

例如(不起作用):

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 Graph 请求获取每个用户的个人资料图片 Uri picture,因为它太慢了。如果一个页面上有 20 张 Facebook 图片,则有 20 个 HTTP 请求返回 Facebook 的服务器。我的目标是零。

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

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

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

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

4

1 回答 1

1

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

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

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

一次调用20张图片,可以调用端点:

https://graph.facebook.com/picture?type=square&ids=UID_1,USERNAME_2,...UID_n
于 2012-09-17T21:56:25.547 回答