我是Facebook API的新手,但我需要获取一个Facebook页面上的所有照片。我成功地得到了一条Graph API查询语句,它返回页面上只有第一个创建的相册中的所有图片,这就是头像相册。例如:
https://graph.facebook.com/227843870675663/photos
但我需要对页面中所有其他现有的相册执行相同的操作。非常感谢您提供任何指导。
我是Facebook API的新手,但我需要获取一个Facebook页面上的所有照片。我成功地得到了一条Graph API查询语句,它返回页面上只有第一个创建的相册中的所有图片,这就是头像相册。例如:
https://graph.facebook.com/227843870675663/photos
但我需要对页面中所有其他现有的相册执行相同的操作。非常感谢您提供任何指导。
试一下这个方法,并告诉我你的进展如何。我已成功从一个Facebook页面中获取了所有照片。
确保你是 Facebook 页面的管理员。
在 API Navigator 中,你可以访问 /me
来查看你自己的基本信息。
尝试输入 /me/accounts
看看是否能看到任何内容。它应该会给你一个错误提示。
你需要启用某些权限才能进行此 Graph 查询。选择右侧边栏中的相关权限。根据此文档,你需要使用 pages_show_list
和 pages_read_engagement
权限来进行此查询。
点击 “获取访问令牌”,这将为您提供具有更新权限的新令牌。你可能会弹出一个窗口,在窗口中确认你希望这个访问令牌能够查看哪些页面。
现在再次尝试 /me/accounts
。你应该能在查看窗口中看到你启用访问权限的页面列表。
找到你想要查询的 Facebook 页面,并点击 “id” 字段。这个 ID 是进行与此页面相关的任何查询所必需的。
接下来,在左侧窗口中,你可以看到 “Node: ” 和一个 + 符号。点击这个符号以查看你有哪些选项。
点击 + 符号并向下滚动到 “connections”,然后选择 “Albums”。
在子层级中,选择 “Photos”。
在“Photos”子级中,选择“source”。
现在点击右边的 “提交”。
如果以上方法不起作用,你可以尝试将以下 URL 复制到 API explorer 中:
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。
为此,您需要运行稍微不同的查询:
https://graph.facebook.com/v15.0/YOUR_PAGE_ID/feed?fields=attachments
上述查询提供的许多图像URL仅提供高达720px的分辨率。如果您想要更高分辨率的图像,则需要找到每个子附件的target.id
,并为每个图像执行单独的图形查询以获取其他分辨率。操作如下:
https://graph.facebook.com/v15.0/YOUR_IMAGE_ID?fields=images
上面生成的令牌只能使用约1-2小时。如果你想要更长时间的令牌,请按照这篇文章中的步骤进行操作。
当你获取你的Facebook用户时,你可以:
它们分别需要以下权限:
更新:
如果你想从一个Facebook页面获取这些信息:
权限为:任何有效的访问令牌或用户访问令牌。
/me?fields=albums.fields(photos.limit(99999).fields(id))&limit=99999
。 - Yura Shinkarev