Facebook Graph API:在页面提要中选择附件媒体大小

luk*_*ash 5 json facebook facebook-graph-api

我正在使用 Facebook Graph API v2.8 来获取如下页面提要:

/page-id/posts?fields=attachments{media,title},id,message...
Run Code Online (Sandbox Code Playgroud)

如果帖子有附件,我希望我的请求返回attachments.media.image 路径中每个附件的完整尺寸图像。目前,它仅返回标准尺寸(380x380px 至最大 720x720px)的方形图像。

有没有办法进一步指定查询来实现这一点?就像是:

fields=attachments{media{image.type(full)},title]},id....
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我不想向媒体/对象端点发出另一个请求。

PS:当前响应中的 url 指向 php 服务,其中包含宽度和高度参数,可以省略该参数以获得完整尺寸的图像。

https://external.xx.fbcdn.net/safe_image.php?d=AQAkZcYtE-TiVzTj&w=542&h=542&url=fbstaging%3A%2F%2Fgraph.facebook.com%2Fstaging_resources%2FMDExMDE1NDcxNzI3Njg3Mjc2MDoxMjE3ODEyMjE%3D&cfs=1&sx=104&sy=0&sw=542&sh=542&l
Run Code Online (Sandbox Code Playgroud)

然而,由于该 URL 中也有一个哈希值,我真的不想做正则表达式来删除响应图像 URL 的宽度和高度参数来获取全尺寸图像。

编辑:我也不能真正使用 full_picture 字段,因为它只会给我第一个(主)附件的 URL。我正在查找所有附件的媒体 URL。

附件参考

Sim*_*ast 0

我还没有找到在初始查询中获取高分辨率图像 URL 的方法。我认为这必须分步骤完成。

1. 将照片发布到 feed

https://graph.facebook.com/v15.0/YOUR_PAGE_ID/feed?fields=attachments&access_token=...
Run Code Online (Sandbox Code Playgroud)

2. 获取高分辨率图像

上面的查询提供的图像 URL 通常仅提供最高 720 像素的分辨率。如果您想要更高分辨率的图像,那么您需要找到target.id每个子附件,并对每个图像执行单独的图形查询以获得其他分辨率。它看起来像这样:

https://graph.facebook.com/v15.0/YOUR_IMAGE_ID?fields=images&access_token=...
Run Code Online (Sandbox Code Playgroud)

这个答案取自我在此处贡献的另一个更详细的答案