如何通过Facebook Graph API获取主页帖子与Reels并避免重复?
解决Facebook Feed与Reels接口重复内容及区分问题
一、区分Feed里的Reels内容
Facebook官方文档没提供直接的Reels标识字段,但可以通过返回字段的组合判断:
- 先看
type字段是否为video,再检查是否存在reel嵌套对象(比如post.reel.id),或者显式请求is_reel字段(部分API版本会返回这个隐藏字段,需要在请求时指定) - 另外,Reels的
video_format字段值通常是REELS,请求Feed时把这个字段加入fields参数,就能区分普通视频和Reels
示例Feed请求(指定关键字段):
https://graph.facebook.com/v18.0/${facebookId}/feed?access_token=${access_token}&limit=20&fields=id,type,message,video_format,reel,is_reel
二、合并结果时去重
拿到Feed和video_reels的结果后,用帖子ID作为唯一标识去重,步骤如下:
- 请求Feed接口,标记出其中的Reels内容
- 请求video_reels接口,获取纯Reels列表
- 合并两个列表,以帖子
id为键存入字典,自动覆盖重复的ID条目(或者对比created_time保留更新的那条) - 将字典转换为列表,按
created_time倒序排序,即可模拟Facebook主页的时间流展示效果
三、替代方案:尝试带筛选的Posts端点
可以试试/${facebookId}/posts端点配合filter参数,一次性拉取帖子和Reels,不过这个参数的支持性可能随API版本变化,需要测试验证:
https://graph.facebook.com/v18.0/${facebookId}/posts?access_token=${access_token}&limit=20&filter=REELS,POSTS
内容的提问来源于stack exchange,提问作者Peshang Hiwa
相关产品推荐
相关产品推荐

