我的目标是从给定页面中提取最新帖子。使用API端点{page_id}/posts
可以正常工作。部分帖子属于type="photo"
,其中包含字段picture
和full_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
是缩略图大小的图片的网址。如果可能的话,我想获得更大尺寸的相同图像的网址。
答案 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
。