我知道有关FB's Graph API and how to retrieve full sized images的许多现有问题。
但其中许多是关于获取用户个人资料图片,用“/< userid> / picture”或类似的东西来回答。我需要知道如何从页面提要中获取已发布的图像,因此这不是我正在寻找的内容。然后,在搜索查询中使用“full_image
”回答了问题。
嗯,此时我的问题就开始了。 full_image
实际上不是完整的图像。它仅限于720x720像素。
我们来看一个例子: Facebook的Graph API资源管理器中的explore this picture from SPIEGEL ONLINE。
Graph API请求的给定路径是:
/38246844868_10154299256109869?fields=full_picture,picture,permalink_url,type,object_id
回复如下:
{
"full_picture": "https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/13450864_1068539139897737_5236884236245491903_n.jpg?oh=20cc415e7931b8eb8a6228ab253bfa53&oe=57E23B8B",
"picture": "https://scontent.xx.fbcdn.net/v/t1.0-0/s130x130/13450864_1068539139897737_5236884236245491903_n.jpg?oh=37c4263e047f841da7243c040a4f279d&oe=57C6469E",
"permalink_url": "https://www.facebook.com/spiegelonline/posts/10154299256109869",
"type": "photo",
"object_id": "1068539139897737",
"id": "38246844868_10154299256109869"
}
如您所见,我请求picture
(只是一个拇指)和full_picture
索引的完整尺寸图像。不幸的是,这张图片不完整,而是重新调整大小的图片。它甚至在图像的URL中提到它最多只有720x720。
访问permalink_url
后面的Facebook页面时,您会看到图片信息。
我们走了:https://www.facebook.com/spiegelonline/posts/10154299256109869
以全屏模式打开已发布的图像,然后右键单击它以显示图像文件时,您将看到图像将大得多于720x720。
它是:https://scontent-frt3-1.xx.fbcdn.net/t31.0-8/13422344_1068539139897737_5236884236245491903_o.jpg
请将URL与API端点响应的URL进行比较,如上所示。甚至服务器也不同。因此,在SO上的其他一些问题中,将“_n”替换为“_o”并不是一个简单的解决方案。
我的问题是:如何使用Graph API获取完整尺寸的图片网址?
TL; DR: Facebook的图谱API似乎通过使用full_image
访问页面的Feed来提供已调整大小的图片。那么,如何检索实际的完整(意思是未调整大小)图像。
答案 0 :(得分:1)
在使用Graph API Explorer再次玩游戏后,我终于找到了解决方案。它比我想象的要简单得多。
您需要做的就是以下几个步骤:
full_picture
访问者,此处只有object_id
很重要): /38246844868_10154299256109869?fields=object_id
object_id
:{
"object_id": "1068539139897737",
"id": "38246844868_10154299256109869"
}
在此示例中,它是"1068539139897737"
。
images
申请上述object_id
: /1068539139897737?fields=images
{
"images": [
{
"height": 2048,
"source": "https://scontent.xx.fbcdn.net/v/t31.0-8/13422344_1068539139897737_5236884236245491903_o.jpg?oh=e923e167d258e77c12caf422d98b44aa&oe=59968118",
"width": 1536
},
{
"height": 1280,
"source": "https://scontent.xx.fbcdn.net/v/t31.0-8/p960x960/13422344_1068539139897737_5236884236245491903_o.jpg?oh=7a5086e29957b222c2fd1136f3640c98&oe=598633CD",
"width": 960
},
// … many others in between here …
{
"height": 225,
"source": "https://scontent.xx.fbcdn.net/v/t1.0-0/p75x225/13450864_1068539139897737_5236884236245491903_n.jpg?oh=26d94247c4e34a69fb0db3fb1ae213b5&oe=599353F9",
"width": 168
}
],
"id": "1068539139897737"
}
images
列表中抓取第一个条目。得到它的source
- etvoilà - 这就是全貌。