图表API:检索页面Feed中的图片尺寸
我使用Graph API来获取粉丝页面的贴子。
我注意到Facebook iOS应用程序本身能够确定占位符的确切比例。
http://developers.facebook.com/tools/explorer?method=GET&path=facebook%2Ffeed%3Ffields%3Dpicture
{
"data": [
{
"picture": "http://photos-b.ak.fbcdn.net/hphotos-ak-frc1/247019_457846347622804_946521095_s.jpg",
"id": "20531316728_10151883063741729",
"created_time": "2013-05-02T16:57:25+0000"
},
:
:
:
{
"picture": "http://photos-e.ak.fbcdn.net/hphotos-ak-ash4/223257_10151498310776729_930531604_s.jpg",
"id": "20531316728_10151498193061729",
"created_time": "2012-10-05T18:42:38+0000"
}
],
"paging": {
"previous": "https://graph.facebook.com/20531316728/feed?fields=picture&limit=25&since=1367513845",
"next": "https://graph.facebook.com/20531316728/feed?fields=picture&limit=25&until=1349462557"
}
}
在API响应中,它不包含图片维度的信息,我希望我的自定义客户端(如Facebook iOS应用程序)具有正确的占位符大小。
我尝试添加/ facebook / feed?fields =图片,宽度,高度,但没有运气检索相应的信息。
有没有一种方法可以从API本身检索图片的高度和宽度参数?
不,API不会根据来自/ page_id / feed或流表的后期提要返回所有图片的尺寸。
我提到所有因为,你可以做的是:
SELECT post_id, created_time, actor_id, attachment, message FROM stream WHERE source_id=PAGE_ID AND created_time<now() LIMIT 50
如果帖子类型是照片:
如果帖子类型是视频:
如果帖子类型是链接从fbexternal开始(提取参数w和h):
如果帖子类型没有fbexternal(脸书照片)链接,我们卡在这里!:
代码原型:
if attachment:
image_url = attachment.media[0].src
if image_url:
m = image_url.photo.images
if m:
if m.src == image_url:
image_width = m.width
image_height = m.height
else: #no dimensions info
if host by fbexternal:
#extract parameter w and h from https://fbexternal-a.akamaihd.net/safe_image.php?d=AQBhfbzbNudc_SE8&w=130&h=130&url=http%3A%2F%2F
image_width = 130
image_height = 130
else:
Stuck here, very hard to get extract photo id based on this url, a lot of work!
总之,我强烈建议您在下载照片后获取图像宽度和高度。 例如,PHP有getimagesize函数,python有Python成像库(PIL)。
我不确定是否有更容易获得所需宽度和高度的方法,但这里有一个肯定但有点冗长的方式。
以您为例,您看到的第一张图片“20531316728_10151883063741729”的ID实际上并不是图片的ID。 这是照片所在的文章。
你可以做的是查询该postID
http://developers.facebook.com/tools/explorer?method=GET&path=20531316728_10151883063741729
那么它会暴露图片的object_id 457846347622804(做一个搜索,你会明白我的意思)。 现在您查询该图片的ID,您将获得宽度和高度。
http://developers.facebook.com/tools/explorer?method=GET&path=457846347622804
从那时起,你应该能够得到你需要的比例。
如果任何人有一个完美的方式完成这个,我也很想知道。
链接地址: http://www.djcxy.com/p/32637.html