使用 Graph 从 Facebook 相册获取视频 API

Get videos from a Facebook album using the Graph API

我可以使用

从用户的供稿中获取视频
me/videos/uploaded

但我只想要属于某个专辑的视频。

我可以使用

从相册中获取照片
{album-id}/photos

Facebook 文档未显示任何获取可上传到同一相册的视频或其他媒体格式的方法。

问题:

目标是使用此列表获取每个视频的反应,因此如果反应也可以作为视频的字段进行查询,那就太好了。但是,正如我注意到的那样,要从照片中获得反应,我需要使用普通 ID {user_id}_{post_id} 再次查询它,我猜我可以在获得视频 ID 后做同样的事情。

除了这个 3 步解决方法外,我找不到其他方法:

  1. 查询用户已上传的所有视频列表,端点me/videos/uploaded有。
  2. 使用机器人(例如 Selenium)检查 URL https://www.facebook.com/[user-id]/videos/a.[album-id]/' + [video-id] 中的每个视频,看看它是否真的生成了视频,这表明它属于该专辑。如果没有视频,则它不是有效的 URL,并且该视频不属于相册。 Facebook 的 robots.txt 不允许机器人,但仅使用 BeautifulSoup 阅读页面是不可能的,因为 their HTML is JavaScript-rendered.
  3. 从端点查询每个视频以获取其反应
[user-id]_[video-id]fields=
reactions.type(LOVE).limit(0).summary(total_count).as(love),
reactions.type(WOW).limit(0).summary(total_count).as(wow),
reactions.type(HAHA).limit(0).summary(total_count).as(haha),
reactions.type(LIKE).limit(0).summary(total_count).as(like),
reactions.type(ANGRY).limit(0).summary(total_count).as(angry),
reactions.type(SAD).limit(0).summary(total_count).as(sad)

(去掉所有的换行符,我只是为了方便阅读才放的)

您也可以一次为 50 个视频批量请求此信息。为此,我将 facebook-sdk 包用于 Python 及其 get_objects 函数。