我是 Facebook API 的新手,但我必须从 Facebook 页面获取所有照片。我设法获得了一个图形 API 查询,该查询返回个人资料相册页面上仅第一个创建的相册 的所有图片。例如:
https://graph.facebook.com/227843870675663/photos
但我需要对页面中所有其他现有相册执行相同的操作。非常感谢任何指点。
最佳答案
试试这个,让我知道你的效果如何。我已成功从 Facebook 页面中提取所有照片。
确保您是 Facebook 主页的管理员。
在API Navigator中,您可以访问
/me
来调出您自己的基本信息。尝试输入
/me/accounts
看看你是否能看到任何东西。它应该给你一个错误。您需要启用某些权限才能进行此图形查询。在右侧边栏中选择相关权限。根据此文档,您需要此查询的
pages_show_list
和pages_read_engagement
权限。点击“获取访问 token ”,这将为您提供一个具有更新权限的新 token 。您可能会看到一个弹出窗口,您必须在其中确认您希望此访问 token 能够看到哪些页面。
现在再次尝试
/me/accounts
。您应该会在查看窗口中看到您启用访问权限的页面列表。找到您要查询的 Facebook 页面,然后点击 “id” 字段。进行与此页面相关的任何查询都需要此 ID。
接下来,在左侧窗口中,您可以看到“节点:” 和一个+ 符号。单击 + 符号查看您有哪些选项。
点击 + 符号并向下滚动到“连接”并选择“相册”
子级,选择“照片”
“照片”子级,选择“来源”
现在点击右侧的“提交”。
如果上述方法不起作用,您可以尝试将以下 URL 复制到 API 资源管理器中:
YOUR_PAGE_ID/?fields=albums.fields(photos.fields(source))
您将看到返回的 JSON,其中包含所选 Facebook 页面中部分/所有照片的 URL。
点击“获取代码”,它将向您显示用于访问此信息的 Javascript 或原始 URL。
“cURL”选项卡将显示如下所示的 URL:
https://graph.facebook.com/v15.0/YOUR_PAGE_ID?fields=albums.fields(photos.fields(source))&access_token=YOUR_ACCESS_TOKEN_HERE
您可以复制该 URL 并将其插入浏览器。您应该会看到所有照片的 JSON,以及每张照片在 Facebook 的 CDN 上的对应 URL。
获取发布到 feed 的照片,而不仅仅是相册
为此,您需要运行一个稍微不同的查询:
https://graph.facebook.com/v15.0/YOUR_PAGE_ID/feed?fields=attachments
获取高分辨率图像
上述查询提供的许多图片网址最多只能提供 720 像素的分辨率。如果您想要更高分辨率的图像,则需要为每个子附件找到 target.id
,并对每个图像执行单独的图形查询以获得其他分辨率。它看起来像这样:
https://graph.facebook.com/v15.0/YOUR_IMAGE_ID?fields=images
注意过期 token
上面生成的 token 只能工作大约 1-2 小时。如果您想要更持久的 token ,请按照 this post here 中的步骤操作.
关于facebook - 使用 Facebook API 获取页面的所有照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18037926/