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的像素大小来更改图像的大小,如下所示:
例如我改变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); } } );
您可以使用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)“));