Facebook Graph API - 页面/帖子 - 如何获取照片网址?

时间:2014-06-05 08:06:17

标签: python facebook facebook-graph-api

我的目标是从给定页面中提取最新帖子。使用API​​端点{page_id}/posts可以正常工作。部分帖子属于type="photo",其中包含字段picturefull_picture。麻烦的是,那些图像网址很小,更像是缩略图而不是图像。

我注意到最近有另一个字段object_id附带任何类型照片的帖子。向{object_id}/picture?redirect=false发出请求会向图像返回一个网址。

我想从{object_id}/picture提取帖子时从{page_id}/posts获取网址,但我无法找到方法。 我试图嵌套请求{page_id}/posts?fields=object_id.fields(picture),我得到的只是Subfields are not supported by object_id

如何获取页面发布的图像的网址?

修改

只是为了澄清我的问题:

我想拉出给定页面的所有最新帖子。对于type="photo"的帖子,除了其他字段(如邮件)之外,我还要提取图片网址。最好不要使用Graph API。

我的通常要求如下:

{page_id}/posts?fields=id,object_id,message,description,full_picture,source

这会为page_id带来各种帖子。 full_picture是缩略图大小的图片的网址。如果可能的话,我想获得更大尺寸的相同图像的网址。

3 个答案:

答案 0 :(得分:2)

查询attachments字段。像这样:

{page_id}/posts?fields=attachments,id,object_id,message,description,full_picture,source

这将为您提供完整尺寸的图像。

请注意,这可能不适用于状态更新帖子。

答案 1 :(得分:0)

您可以在FQL中执行此操作:

select pid, object_id, src_big from photo where pid in (select attachment.media.photo.pid from stream where source_id={PAGE_ID} and type=247)

其中{PAGE_ID}是您的网页的数字ID。

答案 2 :(得分:0)

使用picture字段获取缩略图网址。这是您从单个API调用中获得的最多。但您可以修改该URL以引入完整分辨率图片。看看这个答案。

https://stackoverflow.com/a/22897707/1754999

如果你使用Picasso,你可以在加载时检查重定向错误(如果该方法不起作用)并设置另一个API调用帖子的object_id。该API调用中的source字段将是全分辨率图像,但仅在上述方法不起作用时才使用该字段。

编辑:您基本上将_s替换为网址中的_n_o