通过ID获取用户个人资料图片


123

我现在正在开发一个主要基于facebook graph api的Web应用程序。我保存了一些有关用户的数据-实际上是可能的可用公共数据-例如名称和ID。我也知道个人资料图片是公共数据的一部分,我想知道如何仅通过使用其ID就能直接链接到用户的个人资料图片?

提前致谢


Answers:


295

http://graph.facebook.com/ “ + facebookId +” / picture?type = square例如:http : //graph.facebook.com/67563683055/picture ?type=square

除“正方形”外,还有更多尺寸。请参阅文档



32
最好看看这些文档,因为它们也具有所有其他选项。例如,如果您想要一个大的正方形图像(因为正方形默认值很小),则必须使用https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720
sudo 2014年

2
有没有一种方法可以只查询图像网址而不是图像本身?如果可能的话,希望不通过服务器将图像上传到前端
Alexander Mills

1
希望这将使某人节省找到其个人资料ID的额外步骤-findmyfbid.com
jarmerson

3
使用redirect = 0而不是图像本身来获取JSON描述(包括url)
Ilya Denisov 2016年

123

您可以使用以下网址获取不同尺寸的个人资料图像。请确保将Facebook ID添加到网址。

大型照片 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


2
这就是我如何能够找到自己FacebookId:developers.facebook.com/tools/explorer/...
瑞恩

39

获得最大尺寸的图像

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

或您需要的其他尺寸。根据经验,type = large并不是您可以获得的最大结果。


1
也可以通过:graph.facebook.com {userID}?fields = picture.type(large),当您遇到类似的情况时,此功能很有用,String url =“ graph.facebook.com/me?fields=id,name,email ,picture.type(large) 如其他答案所述,您可以用普通,小,正方形替换大...
yajnesh 2015年

(现在)不需要访问令牌吗?
Bernoulli IT


13

实际上Graph 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本身


1
las,它不再在Graph API文档的主页上,而是在这里:developers.facebook.com/docs/graph-api/using-graph-api
Igy 2014年

3
,它不在Graph API文档的首页上。您最好避免使用SO上的时间约束语句。你知道..那些日子变化很快...
Gianluca Ghettini 2015年

具有讽刺意味的是,无论如何,与图形api页面相比,您的答案在提供更多相关信息时会更加有用:-)
Simon_Weaver

6

在这里,此API可让您轻松获取fb,google和twitter个人资料照片

https://www.avatars.io/

当为各种社交网络(包括Twitter,Facebook,Instagram和gravatar)提供用户名时,该API会返回个人资料图片。它具有适用于iOS,Android,Ruby,Node,PHP,Python和JavaScript的库。


1
真是太棒了!仅仅因为SO喜欢更详细地描述链接;这是一个API,当为各种社交网络(包括Twitter,Facebook,Instagram和gravatar)提供用户名时,它将返回个人资料图片。它具有适用于iOS,Android,Ruby,Node,PHP,Python和JavaScript的库。一款出色的软件。可以在GitHub上找到它。
阿里·库珀-戴维斯

3

您可以使用以下网址获取它:您将获得图片高清(最大尺寸)

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

不要忘记 redirect = false,否则会返回错误


2

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


2

您可以为此使用AngularJs,它的双向数据绑定功能将以最小的工作量和更少的代码获得解决方案。

<div> <input type="text" name="" ng-model="fbid"><br/> <img src="https://graph.facebook.com/{{fbid}}/picture?type=normal"> </div>

我希望这能回答您的查询。注意:您也可以使用其他库。


1

通过Javascript SDK(v2.12-2017年4月),您可以通过以下方式获取图片请求的详细信息:

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响应参数redirect0(零)作为值是因为由默认请求重定向到图像重要。您仍然可以在同一URL中添加其他参数。例子:

  • "/" + uid + "/picture?redirect=0&width=100&height=100":将返回100x100的图片;
  • "/" + uid + "/picture?redirect=0&type=large":返回200x200的图片。其他可能的类型值包括:smallnormalalbumsquare


1

根据当前最新的Facebook API版本3.2,对于用户,您可以使用以下通用方法获取个人资料图片:https://graph.facebook.com/v3.2/{ user-id}/picture ?type=square您可以在此处访问用户图片的文档。URL中的type参数的可能值可以是small,normal,album,large,square

对于“组和页面”,个人资料图片不直接可用。您必须使用访问令牌来获取它们。对于组,您必须使用用户访问令牌,对于页面,您必须同时使用用户访问令牌和页面访问令牌。

您可以使用通用网址获取群组或专页的个人资料图片:https : //graph.facebook.com/v3.2/{user- id}/ picture?access_token={access-token}&type=square

我希望这对正在寻找“页面”或“群组个人资料”图片的人有所帮助。


对于大多数页面,我得到的页面个人资料图片没有访问令牌,但是对于某些页面,它以以下格式返回问号图像作为响应。{“ data”:{“ is_silhouette”:true,“ url”:“ static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif ”}}任何提示?
xyz

0

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.