Facebook Graph API:在一个请求中获得更大的图片

我目前正在使用Graph API Explorer进行一些testing。 这是一个很好的工具。

我想得到用户的朋友名单,与朋友的名字,ID和图片。 所以我input:

https://graph.facebook.com/me/friends?fields=id,picture,name 

但图片只有50×50,我想在这个要求更大的一个。

可能吗 ?

你不需要拉'图片'属性。 有更方便的方法,你唯一需要的是userid,见下面的例子;

https://graph.facebook.com/user_id/picture?type=large

pstypes定义您想要的大小

请记住,使用具有基本权限的标记,/我/朋友将只返回id + name属性的朋友列表

正如Facebook上的这个bug所描述的那样,您现在也可以通过新的API“ 字段扩展 ”语法请求特定的图像大小。

像这样:

 https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large) 

让所有朋友(当然也是使用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 API Explorer,最终find了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/user_id/picture?height=

要么

https://graph.facebook.com/user_id/picture?width=

这些值默认以像素为单位,您只需提供int值即可

嗯…我想我find了一个解决scheme。

其实只要求就可以了

 https://graph.facebook.com/me/friends?fields=id,name 

根据http://developers.facebook.com/docs/reference/api/ (“图片”部分),个人资料照片的url可以用用户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,所以如果有人有更好的解决scheme,我会很高兴知道:)

您可以像素设置图片的大小,如下所示:

 https://graph.facebook.com/v2.8/me?fields=id,name,picture.width(500).height(500) 

在Graph响应中的图片URL(“ http://photos-c.ak.fbcdn.net/ ”)中,只需将“_n.jpg”(?正常大小)replace为默认的“_s.jpg”或“_b.jpg”(?大尺寸)或“_t.jpg”(缩略图)。

Hacakable URLs / REST API使Web更好。

v2.7/<picture-id>?fields=images会为您提供不同尺寸图片的列表,第一个元素是全尺寸图片。

我不知道任何解决scheme一次多个图像。

我认为到目前为止,获得朋友的大量照片的唯一方法是使用FQL。 首先,你需要获取一个朋友列表:

https://graph.facebook.com/me/friends

然后parsing这个列表并提取所有的朋友ids 。 如果有,请执行以下FQL查询:

 SELECT id, url FROM profile_pic WHERE id IN (id1, id2) AND width=200 AND height=200 

200这里只是一个模范的大小,你可以input任何东西。 你应该得到以下回应:

 { "data": [ { "id": ..., "url": "https://fbcdn-profile-a.akamaihd.net/..." }, { "id": ..., "url": "https://fbcdn-profile-a.akamaihd.net/..." } ] } 

每个url都链接到200x200px的图片。

我有同样的问题,但我试过这一个来解决我的问题。 它返回大图像。 这不是一个完美的解决scheme,但你可以试试这个。

https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX

尝试通过更改每个json对象中的url的像素大小来更改图像的大小,如下所示:

例如我改变s480x480s720x720

之前: 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); } } ); 

您可以使用full_picture而不是图片键来获得全尺寸的图像。

你可以指定宽度和高度在你的请求Facebook图表api: http://graph.facebook.com/user_id/picture?width=500&heigth=500 ://graph.facebook.com/user_id/picture?width=500&heigth=500

rest-fb用户(方形图像,更大的分辨率):连接myFriends = fbClient.fetchConnection(“me / friends”,User.class,Parameter.with(“fields”,“public_profile,email,first_name,last_name,gender,picture .WIDTH(100).height(100)“));