通过 ID 获取用户配置文件图片

我现在正在开发一个 Web 应用程序,它基本上是基于 Facebook 的图形应用程序接口(api)。 我保存了一些关于用户的数据——实际上是可能的公共数据——比如名称和 ID。 我也知道个人资料图片是公共数据的一部分,我想知道如何才能得到一个直接链接到一个用户的个人资料图片只使用他的 ID?

先谢谢你

285359 次浏览

Http://graph.facebook.com/" : facebookId +”/Picture? type = square 例如: Http://graph.facebook.com/67563683055/picture?type=square

除了“正方形”,还有更多的尺寸。参见 那些文件

2020年9月更新
由于 Facebook 已经更新了他们的文档,这种方法在没有令牌的情况下不再有效。您需要附加某种 access_token。你可以在 facebook.com/docs/graph-api/reference/user/picture/rel = “ norefrer”> graph api of user picture 的 fb 文档中找到更多的信息,以及如何正确地做到这一点

需求更改 此端点支持应用程序作用域用户 ID (ASID)、用户 ID (UID)和页作用域用户 ID (PSID)。目前,您可以查询 ASID 和 UID,而不需要任何要求。但是,从2020年10月24日开始,所有基于 UID 的查询都将需要访问令牌。如果查询 UID,因此必须包含令牌:

使用 Facebook 登录认证请求的用户访问令牌
对页面范围的请求使用 Page 访问令牌
对服务器端请求使用 App 访问令牌
使用客户端访问令牌进行移动或 Web 客户端请求

联邦调查局的文件

来自 图形 API 文档

  • /OBJECT_ID/picture返回对象图片的重定向(在本例中为用户)
  • /OBJECT_ID/?fields=picture返回图片的 URL

例子:

<img src="https://graph.facebook.com/4/picture"/>使用 HTTP 301重定向到 Zuck 的配置文件图片

https://graph.facebook.com/4?fields=picture返回 URL 本身

在 img 标签的 src 中使用 url 作为: https://graph.facebook.com/abc0/picture?type=square。 类型可以 小,大。

您可以使用以下 URL 来获取不同大小的配置文件图像。 请确保将 Facebook ID 添加到 url。

大号照片 Https://graph.facebook.com/ { facebookId }/picture? type = large

中号照片 Https://graph.facebook.com/ { facebookId }/picture? type = Normal

小号照片 Https://graph.facebook.com/ { facebookId }/picture? type = small

正方形照片 Https://graph.facebook.com/ { facebookId }/picture? type = square

获取图像的最大尺寸

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)

根据经验,type = large 不是您能获得的最大结果。

这将是有用的链接:

Http://graph.facebook.com/893914824028397/picture?type=large&redirect=true&width=500&height=500

您可以根据需要设置高度和宽度

893914824028397 is < strong > facebook

Https://www.avatars.io/

这是一个 API,当为包括 Twitter、 Facebook、 Instagram 和 gravatar 在内的各种社交网络提供用户名时,它会返回配置文件图像。它有 iOS、 Android、 Ruby、 Node、 PHP、 Python 和 JavaScript 的库。

您可以使用 AngularJs 为此,其双向数据绑定功能将获得解决方案的最低努力和较少的代码。

< div > < input type = “ text”name = “”ng-model = “ fbid”> < br/> < img src = “ https://graph.facebook.com/\{\{ fid }}/image? type = Normal”>

我希望这能回答你的问题。注意: 你也可以使用其他的库。

通过 Javascript SDK (v2.12-April,2017),你可以通过以下方式获得图片请求的详细信息:

FB.api("/" + uid + "/picture?redirect=0", function (response) {
console.log(response);


// prints the following:
//data: {
//  height: 50
//  is_silhouette: false
//  url: "https://lookaside.facebook.com/platform/profilepic/?asid=…&height=50&width=50&ext=…&hash…"
//  width: 50
//}


if (response && !response.error) {
// change the src attribute of img elements
[...document.getElementsByClassName('fb-user-img')].forEach(
i => i.src = response.data.url
);


// OR redirect to the URL above
location.assign(response.data.url);
}
});

为了获得 JSON 响应,以 0(零)作为值的参数 redirect非常重要,因为请求在默认情况下会重定向到图像。您仍然可以在同一个 URL 中添加其他参数。例子:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": 将返回一个100x100的图像;
  • 返回一个200x200的图像。其他可能的类型值包括: 很小正常专辑正方形

你可以得到它使用这个网址: 你会得到图片高清(最大尺寸)

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)&redirect=false

不要忘记 重定向 = 错误,否则它将返回一个错误

只需按照下面的 URL 进行操作

Https://graph.facebook.com/facebook_user_id/picture?type=square

类型 可以是正常的、小的、中等的、大的,也可以是正方形(如果你想得到正方形图片,正方形的大小限制为50x50)。

根据目前最新的 Facebook API 3.2版本,对于用户,你可以使用这种通用的方法获取配置文件图片是 https://graph.facebook.com/v3.2/{user-id}/picture?type=square,你可以访问用户图片的文档 给你。 URL 中类型参数的可能值可以是小的、普通的、相册的、大的、正方形的

对于 Group 和 好几页,配置文件图片不能直接使用。您必须使用访问令牌来获取它们。对于组,您必须使用用户访问令牌,对于页,您可以同时使用用户访问令牌和页访问令牌。

您可以使用通用的 URL: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square获得 Group 或 Page 的 Profile 图片

我希望这是有帮助的人谁正在寻找网页或组配置文件的图片。

您可以使用以下端点来获取 image.jfif 而不是 jpg:

https://graph.facebook.com/v3.2/{user-id}/picture

请注意,您将无法看到该图像,只能下载它。

今天我发现了一个问题,配置文件图像正在返回默认的配置文件图片,因为所有基于 UID 的查询都使用了 来自 Facebook 的新要求,所以只要将 &access_token=[apptoken]添加到 URL 中,就可以获得应用程序令牌 从这里

更新日期: 2020年9月

Facebook 有了新的需求变化: 所有基于 UID 的查询都需要访问令牌

因此,你必须将你的应用程序访问令牌添加到 url:

https://graph.facebook.com/{profile_id}/picture?type=large&access_token={app_access_token}

要获得你的 app_access_token使用以下网址:

https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials

你可以在 Facebook 开发者的 Facebook 应用程序的基本设置中找到 your-app-idyour-app-secret

2021年7月最新情况

在@EddyG 的回答之上,结果是如果你仍然不能获取配置文件图片与应用程序访问令牌,FB 帐户必须“允许”FB 应用程序,然后你应该能够获取配置文件图片与 FB 应用程序访问令牌。