我现在正在开发一个主要基于facebook graph api的网络应用程序。 我持有一些关于用户的数据 - 实际上是可用的公共数据 - 例如名称和ID。 我也知道个人资料图片是公共数据的一部分,我想知道如何只使用他的ID才能直接链接到用户的个人资料图片?
提前致谢
答案 0 :(得分:268)
http://graph.facebook.com/“+ facebookId +”/ picture?type = square 例如: http://graph.facebook.com/67563683055/picture?type=square
除了“square”之外还有更多尺寸。请参阅the docs。
答案 1 :(得分:114)
您可以使用以下网址来获取不同尺寸的个人资料图片。 请确保将Facebook ID添加到网址。
大尺寸照片 https://graph.facebook.com/ {facebookId} /照片?类型=大
中等大小的照片 https://graph.facebook.com/ {facebookId} /照片?类型=正常
小尺寸照片 https://graph.facebook.com/ {facebookId} /照片?类型=小
方形照片 https://graph.facebook.com/ {facebookId} /照片?类型=平方
答案 2 :(得分:36)
获得最大尺寸的图像
https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)
或您需要的任何其他尺寸。根据经验,type = large不是您可以获得的最大结果。
答案 3 :(得分:16)
这将是有用的链接:
http://graph.facebook.com/893914824028397/picture?type=large&redirect=true&width=500&height=500
您可以根据需要设置高度和宽度
893914824028397 facebookid
答案 4 :(得分:13)
Graph API documentation的首页上字面。
/OBJECT_ID/picture
返回对象图片的重定向(在本例中为用户)/OBJECT_ID/?fields=picture
返回图片的网址示例:
<img src="https://graph.facebook.com/4/picture"/>
使用HTTP 301重定向到Zuck的个人资料图片
https://graph.facebook.com/4?fields=picture
返回网址
答案 5 :(得分:7)
更新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-id
和your-app-secret
答案 6 :(得分:6)
在这里,这个api可以让你轻松获得fb,google和twitter个人资料图片
这是一个API,当为各种社交网络(包括Twitter,Facebook,Instagram和gravatar)提供用户名时,它会返回个人资料图片。它有适用于iOS,Android,Ruby,Node,PHP,Python和JavaScript的库。
答案 7 :(得分:3)
在img标签的src中使用网址为:https://graph.facebook.com/ user_id / picture?type = square。 类型可能小,大。
答案 8 :(得分:2)
您可以使用AngularJs,它的双向数据绑定功能将以最少的工作量和更少的代码获得解决方案。
<div>
<input type="text" name="" ng-model="fbid"><br/>
<img src="https://graph.facebook.com/{{fbid}}/picture?type=normal">
</div>
我希望这能回答你的问题。注意:你也可以使用其他库。
答案 9 :(得分:2)
您可以使用以下网址获取它:您将获得高清图片(最大尺寸)
https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)&redirect=false
不要忘记 redirect = false ,否则它将返回错误
答案 10 :(得分:1)
通过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响应,参数redirect
0 (零)作为值非常重要,因为默认情况下请求会重定向到图像。您仍然可以在同一个URL中添加其他参数。例子:
"/" + uid + "/picture?redirect=0&width=100&height=100"
:将返回100x100图片; "/" + uid + "/picture?redirect=0&type=large"
:返回200x200图像。其他可能的类型值包括:小,普通,相册和 square 。答案 11 :(得分:1)
只需遵循以下网址
https://graph.facebook.com/facebook_user_id/picture?type=square
类型可以是普通,小型,中型,大型。或正方形(如果要获取正方形图片,则正方形尺寸限制为50x50)。
答案 12 :(得分:1)
根据当前最新的Facebook API版本3.2,对于用户,您可以使用以下通用方法来获取个人资料图片:https://graph.facebook.com/v3.2/{user-id}/picture?type=square,您可以访问用户图片here的文档。 URL中type参数的可能值可以是small,normal,album,large,square
对于组和Pages,个人资料图片不直接可用。您必须使用访问令牌来获取它们。对于组,您必须使用用户访问令牌,对于页面,您必须同时使用用户访问令牌和页面访问令牌。
您可以使用通用网址https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square
来获取组或页面的个人资料图片我希望这对正在寻找“页面或群组个人资料”图片的人有所帮助。
答案 13 :(得分:1)
您可以使用以下端点获取image.jfif而不是jpg:
https://graph.facebook.com/v3.2/{user-id}/picture
请注意,您将无法看到图像,只能下载它。
答案 14 :(得分:1)
今天我发现了一个问题,因为所有new requirement from Facebook到所有基于UID的查询中,个人资料图片都返回了默认的个人资料图片,因此只需将&access_token=[apptoken]
添加到url中,就可以获取应用令牌from here
答案 15 :(得分:0)
2021 年 7 月更新
在@EddyG 的回答之上,事实证明,如果您仍然无法使用应用访问令牌获取个人资料图片,则 FB 帐户必须首先“允许”FB 应用,然后您应该能够获取个人资料图片使用 FB 应用访问令牌。