我目前正在使用Graph API Explorer进行一些测试。那是个好工具。
我想获取用户的朋友列表,以及朋友的姓名,身份证和图片。所以我输入:
https://graph.facebook.com/me/friends?fields=id,picture,name
但是图片只有50x50,我希望在此请求中提供更大的图片。
可能吗 ?
我目前正在使用Graph API Explorer进行一些测试。那是个好工具。
我想获取用户的朋友列表,以及朋友的姓名,身份证和图片。所以我输入:
https://graph.facebook.com/me/friends?fields=id,picture,name
但是图片只有50x50,我希望在此请求中提供更大的图片。
可能吗 ?
Answers:
您无需拉“图片”属性。还有更方便的方法,您唯一需要的是userid,请参见下面的示例;
https://graph.facebook.com/user_id/picture?type=large
ps类型定义所需的大小
请记住,使用具有基本权限的令牌,/ me / friends将仅返回具有id + name属性的朋友列表
使所有朋友(当然也正在使用App的朋友)拥有正确的图片大小的最好方法是使用字段扩展,或者使用其中一个大小标签(正方形,小,普通,大):
/me/friends?fields=picture.type(large)
(编辑:这不再起作用了)
...或者您可以指定宽度/高度:
me/friends?fields=picture.width(100).height(100)
顺便说一句,您也可以这样写:
me?fields=friends{picture.type(large)}
将字段数组更改id,name,picture
为id,name,picture.type(large)
https://graph.facebook.com/v2.8/me?fields=id,name,picture.type(large)&access_token=<the_token>
结果:
{
"id": "130716224073524",
"name": "Julian Mann",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15032818_133926070419206_3681208703790460208_n.jpg?oh=a288898d87420cdc7ed8db5602bbb520&oe=58CB5D16"
}
}
}
Graph returned an error: (#100) For field 'picture': type must be one of the following values: thumbnail, small, album
您也可以尝试根据高度或宽度获取图像
https://graph.facebook.com/user_id/picture?height=
要么
https://graph.facebook.com/user_id/picture?width=
默认情况下,这些值以像素为单位,您只需要提供int值
我对Graph API Explorer进行了广泛的研究,最终发现full_picture
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture
PS我注意到full_picture不会总是提供我想要的全尺寸图像。“附件”确实
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture,attachments
嗯...我想我已经找到了解决方案。
其实,可以只要求
https://graph.facebook.com/me/friends?fields=id,name
根据http://developers.facebook.com/docs/reference/api/(“图片”部分),可以使用用户ID建立个人资料照片的网址
例如,假设用户ID在$ id中:
"http://graph.facebook.com/$id/picture?type=square"
"http://graph.facebook.com/$id/picture?type=small"
"http://graph.facebook.com/$id/picture?type=normal"
"http://graph.facebook.com/$id/picture?type=large"
但这不是最终的图像URL,所以如果有人有更好的解决方案,我将很高兴知道:)
在“图形”响应中找到的图片URL(“ http://photos-c.ak.fbcdn.net/ ”中)中,只需将默认的“ _s.jpg”替换为“ _n.jpg”(正常大小)即可;或者“ _b.jpg”(?大尺寸)或“ _t.jpg”(缩略图)。
可访问的URL / REST API使网络变得更好。
当我向提出要求时,出现此错误picture.type(full_picture)
:
“(#100)对于“图片”字段:类型必须为以下值之一:小,普通,相册,大,正方形”
当我让与请求picture.type(album)
和picture.type(square)
,以50x50像素大小的图像回复我。
当我通过发出请求时picture.type(large)
,以200x200像素大小的图像回应我。
当我以发出请求时picture.width(800)
,以477x477像素大小的图像回应我。
使用picture.width(250)
,响应为320x320。
使用picture.width(50)
,响应为50x50。
使用picture.width(100)
,响应为100x100。
使用picture.width(150)
,响应为160x160。
我认为,当用户首次添加该照片时,facebook提供的图像大小会有所不同。
我在这里看到的用于请求用户图像的API不支持调整请求图像的大小。我认为它可以提供最接近图像的尺寸。
我认为,到目前为止,获取好友大图片的唯一方法是使用FQL。首先,您需要获取朋友列表:
https://graph.facebook.com/me/friends
然后解析此列表并提取所有朋友ids
。有了它,只需执行以下FQL查询:
SELECT id, url FROM profile_pic WHERE id IN (id1, id2) AND width=200 AND height=200
200
这只是示例性的大小,您可以输入任何内容。您应该得到以下响应:
{
"data": [
{
"id": ...,
"url": "https://fbcdn-profile-a.akamaihd.net/..."
},
{
"id": ...,
"url": "https://fbcdn-profile-a.akamaihd.net/..."
}
]
}
每个网址都是指向200x200px图片的链接。
我有同样的问题,但是我尝试过这个来解决我的问题。它返回大图像。这不是完美的解决方法,但是您可以尝试这一方法。
https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX
尝试通过更改每个json对象中url的像素大小来更改图像的大小,如下所示:
例如我将s480x480更改为s720x720
之前:https : //fbcdn-sphotos-ca.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s480x480/10454308_773207849398282_283493808478577207_n.jpg
之后:https : //fbcdn-sphotos-ca.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s720x720/10454308_773207849398282_283493808478577207_n.jpg
JS样式的变体。只需设置巨大的大图片宽度,您将获得最大的变体。
FB.api(
'/' + userId,
{fields: 'picture.width(2048)'},
function (response) {
if (response && !response.error) {
console.log(response.picture.data.url);
}
}
);